Python 在django应用程序中记录事件

Python 在django应用程序中记录事件,python,django,Python,Django,我需要在Django 1.4应用程序中记录一些业务事件。例如,当用户发送参考电子邮件或用户进行购买时。等等此事件日志将用于一些业务分析。 在电子商务应用中是否有这样做的最佳实践?可能是服务或django模块?我以前从未开发过这样的系统,我需要一些建议。有一个内置的日志应用程序。查看1.4文档:我知道您正在谈论使用内置的,但为了提供另一个选项,我通常使用模型在某些电子商务页面中存储日志操作,例如: class MyLog(models.Model): LOG_ACTIONS = (

我需要在Django 1.4应用程序中记录一些业务事件。例如,当用户发送参考电子邮件或用户进行购买时。等等此事件日志将用于一些业务分析。
在电子商务应用中是否有这样做的最佳实践?可能是服务或django模块?我以前从未开发过这样的系统,我需要一些建议。

有一个内置的日志应用程序。查看1.4文档:

我知道您正在谈论使用内置的,但为了提供另一个选项,我通常使用模型在某些电子商务页面中存储日志操作,例如:

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对象,您可以按日期、用户或您放入其中的任何字段对其进行筛选


希望有帮助

是的,我知道。我想还有更具体的应用。您是否曾经使用django logger跟踪用户活动?看起来这是最好的日志记录方法。我想过这样的事情。谢谢不客气!我通常选择此选项,因为我可以自定义我正在处理的项目的登录功能。如何将其连接到视图。假设我从一个视图上传一个文件,它应该被添加到日志中?也许你应该问一个不同的问题,我不确定我是否理解你在寻找什么,你认为作为一个单独的问题问这个会更好吗?如果没有,你可以让我知道如何进行,然后我继续研究。