0

在 django 中,我们settings.py定义了DEBUG整个项目的。

现在,我的调试级别在 settings.py 中独立配置。

我应该如何使用 logging.DEBUG ?

方式1:

if settings.DEBUG:
    logging.debug("Debug message")

方式2:

# Without checking settings.DEBUG
logging.debug("Debug message")

什么是好的做法?

我认为我们应该使用 Way2,因为日志级别已经决定 - 是否将记录消息。但是,有人说 Way1 是一种标准做法。

4

2 回答 2

4

我认为过度依赖诸如 DEBUG 之类的全局设置并不是一件好事,它会改变应用程序的整体行为。

如果您想在生产环境中审核代码并记录内容怎么办?您不会将 DEBUG 变为 true 来执行此操作,是吗?你宁愿调低你的日志过滤器。

从更风格的角度来看,让 2 个设置(DEBUG 和日志级别)影响单个行为是没有意义的,也不是很 Python 主义。

长回答短:我认为方法 2 从技术和风格上来说是优越的。

于 2011-11-09T07:35:38.547 回答
1

第二种方法很好,事实上我一直都在使用它。

我在这里给出答案的唯一原因是因为我们实际上在几年前的一个工作项目中做了类似 (1) 的事情,但事实证明,尽管我们没有在生产中将任何调试级别的内容记录到文件中,但成本创建调试消息本身就非常昂贵并且影响性能。

IE

  • (1) 在生产中,根本不会创建调试级别消息,而只是进行布尔检查。
  • (2) 在生产中,调试消息被创建和传播,但没有登录到文件中(如果这实际上是您设置日志记录的方式)。

这个项目是一个相当大的计算农场,每一盎司的性能都很重要,从那以后我就不是这样了,你可能也不是这样,但是嘿......我只是想我会提到它。

于 2011-11-10T06:40:13.163 回答