【问题标题】:Making logs on a web application在 Web 应用程序上创建日志
【发布时间】:2012-12-06 05:40:32
【问题描述】:

我正在使用类似于项目经理的 Django 开发应用程序。出于这个原因,系统应该能够存储有关所有内容的信息。当我说一切时,我指的是用户执行的操作,执行操作时发生的错误等。 我有一个类 Log,它的一个属性叫做 action_type,这个属性指定了刚刚发生的动作类型。我应该有5种类型:

INFO:此日志存储与用户操作相关的信息,例如创建项目、创建其他用户等。

DEBUG: 应存储开发人员制作的 cmets,以便他们检测错误。

错误: 显示系统中发生但不影响系统功能的错误。

警告:这是针对具有潜在破坏性的行为。

致命: 意外错误、异常和安全漏洞。

我只能为 INFO 提供逻辑日志。

您能告诉我一些合理的日志,我应该将它们包含在这个类别和其他类别中吗?

【问题讨论】:

标签: django logging


【解决方案1】:

答案将很大程度上取决于您的应用程序究竟做了什么,但我的基本方法是:

每次你准备好记录一个事件时,只要想想这个事件,它所属的地方就会很清楚。它杀死了你的应用程序吗?这是致命的。它是否阻止某些东西正常工作?这是一个错误。 可能它会阻止某些东西工作吗?这次我们是不是走运了?这是一个警告。有人在乎吗?信息。否则,如果您仍然需要记录它,那一定是出于调试目的。

在您的特定上下文中,听起来您可能只是在尝试记录用户操作。如果是这种情况,唯一可能致命的操作将是您不提供撤消选项的操作(或者,我想,如果用户能够通过您的应用)。我也无法想象任何来自用户操作的调试级日志。因此,我假设您将记录除用户操作之外的代码级事件。

致命:这应该仅在您的应用程序实际崩溃时出现在日志中,并且可能与 500 响应一起出现。您可以在您的 wsgi 应用程序中以包罗万象的方式生成这些,只有当进程否则会终止时。

错误:可能与 http 错误响应有关。这通常用于由应用程序之外的某些东西引起的错误。您的代码中发生的事情可能是预期的并且

警告:对于不会破坏任何东西,但如果你坚持下去可能会咬你的东西。示例是使用已弃用的 api 和任何仅因默认设置(时区、字符编码等)而起作用的地方。也许某些输入值也会导致警告,例如将截止日期设置为过去。

信息:一般,运行良好。有人创建了数据库行(新项目还是任务?),创建了帐户,登录或退出,成功打开了套接字等等。

调试:正如它所说的那样。一旦代码正常工作,您通常会关闭的输出。方法进入/退出、对象实例化、代码中各个点的字段值、计数器。在您处理程序时,无论您需要找出程序崩溃的原因。

【讨论】:

  • 非常感谢!这正是我所需要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 2011-09-26
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
相关资源
最近更新 更多