【发布时间】:2014-07-17 02:54:34
【问题描述】:
我需要在我的 Django 1.4 应用程序中记录一些业务事件。例如,当用户发送推荐电子邮件或用户进行购买时。等等。此事件日志将用于一些业务分析。 在电子商务应用程序中是否有这样做的最佳实践?可能是服务或 django 模块?我以前从未开发过这样的系统,我需要一些建议。
【问题讨论】:
我需要在我的 Django 1.4 应用程序中记录一些业务事件。例如,当用户发送推荐电子邮件或用户进行购买时。等等。此事件日志将用于一些业务分析。 在电子商务应用程序中是否有这样做的最佳实践?可能是服务或 django 模块?我以前从未开发过这样的系统,我需要一些建议。
【问题讨论】:
我知道您说的是使用内置但只是为了提供另一种选择,我通常使用模型来存储一些电子商务页面中的日志操作,例如:
class MyLog(models.Model):
LOG_ACTIONS = (
('login', 'User logged in'),
('delete_object', 'User delete object'),
('create_object', 'User create object'),
('buy_object', 'User buy object'),
# ... ... ...
# Whatever you need here
)
user = models.ForeignKey(User)
action = models.CharField(max_length=20, default='login', choices=LOG_ACTIONS, verbose_name= 'action')
date = models.DateTimeField(auto_now_add=True, verbose_name='date')
class Meta:
ordering = ['-dt']
verbose_name = 'Action log'
verbose_name_plural = 'Actions log'
该示例已简化,您可以根据需要使用尽可能多的字段和尽可能多的日志操作。
因此,当您执行任何必须在日志中的操作时,只需为 MyLog 创建一个对象,当您想要获取所有日志操作时,只需获取 MyLog 对象,您可以按日期、用户或任何你放在那里的字段。
希望对你有帮助!
【讨论】:
有一个内置的日志记录应用程序。查看 1.4 文档:https://docs.djangoproject.com/en/1.4/topics/logging/
【讨论】: