答案将在很大程度上取决于您的应用程序所做的事情,但我的基本方法是:
每次你准备好记录一个事件时,只要想一想这个事件,它所属的地方就会很清楚。它杀死了你的应用程序吗?这是致命的。它是否阻止某些东西正常工作?这是一个错误。它会阻止某些东西起作用吗?这次我们是不是很幸运?这是一个警告。有人在乎吗?信息。否则,如果您仍然需要记录它,它必须用于调试目的。
在您的特定上下文中,听起来您可能只是在尝试记录用户操作。如果是这种情况,唯一可能致命的操作将是您不提供撤消选项的操作(或者,我想,如果用户能够通过您的应用)。我也无法想象任何来自用户操作的调试级日志。因此,我假设您将记录除用户操作之外的代码级事件。
致命:这应该只在您的应用程序实际崩溃时出现在日志中,并且可能与 500 响应一起出现。您可能会在您的 wsgi 应用程序中以包罗万象的方式生成这些,只有当进程否则会终止时。
错误:可能与 http 错误响应有关。这通常用于由应用程序之外的某些东西引起的错误。您的代码中发生的事情可能是预期的并且 <= 警告级别,或者意外和致命的。错误可能是来自用户在 url 中输入错误的 404、表单提交时的验证错误或身份验证错误。从另一个方向来看,您联系的远程 Web 服务可能会返回错误,或者来自操作系统的 IO 错误。
警告:对于不会破坏任何东西的东西,但如果你坚持下去,那可能会咬你。示例是使用已弃用的 api 和任何仅因默认设置(时区、字符编码等)而起作用的地方。也许某些输入值也会导致警告,例如将截止日期设置为过去。
信息:一般,运行良好。有人创建了一个数据库行(一个新项目还是一个任务?),创建了一个帐户,登录或退出,成功打开了一个套接字等。
调试:正如它所说的那样。一旦代码正常工作,您通常会关闭的输出。方法进入/退出、对象实例化、代码中各个点的字段值、计数器。无论您需要什么来弄清楚为什么您的程序现在正在崩溃,因为您正在处理它。