python - django 1.3 用于在开发环境中进行调试的日志记录

标签 python django logging django-settings

我正在使用 django 1.3 中的日志框架,如此处所述 https://docs.djangoproject.com/en/1.3/topics/logging/

在我的 DEV 环境的 settings.py 文件中,我基本上定义了自定义格式化程序、记录器和处理程序,以便我可以将调试输出记录到文件中。

现在我的代码中到处都是 logger.debug() 语句。

我的问题是:

  1. 当我在生产中部署时,logger.debug 语句是否有任何(重要的) 对性能的影响? (即我需要把它们全部拿出来吗?)
  2. 更改 settings.py 文件以使其不再捕获到文件的最佳方法是什么?目前我只是将处理程序更改为 django.utils.log.NullHandler

最佳答案

  1. 所有这些调试语句对整体性能的影响非常小 - 如果您在负载过重时尝试将所有这些日志消息写入某个文件,性能问题就会显现出来。将大量内容写入文件可能会占用 CPU 和 IO 资源。如果您将日志级别设置为低(警告),这不会成为一个问题,因为这不会导致记录大量消息。当您将来想要调试/增强该代码时,将调试语句保留在其中将会很有帮助。
  2. 如果您不知道将消息记录到文件或标准输出,则可以使用空处理程序。或者,您可以将日志记录级别降低为“警告”,以便仅显示重要的消息。

关于python - django 1.3 用于在开发环境中进行调试的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10465084/

相关文章:

python - 具有多处理功能的 py2exe 无法运行进程

python - pytest - 从测试中分离 fixture 逻辑

Django 迁移 : what `elidable` argument is for?

mysql - 有没有办法用 django 项目运行 python 脚本?

python - 如何在 mac osx 上的子进程中打开文件

python - 覆盖pytest中的子 fixture

python - Django 表单 - 验证错误后重新加载时变量类型发生变化

c++ - 如何创建像 std::cout 这样的函数?

java - Hibernate自定义ExceptionMapper

python - 导入时间记录器命名与日志记录配置之间的不兼容性