Skip to main content
 首页 » 编程设计

python之优化 Python 日志记录代码

2025年05月04日13lovecherry

我有一个在 Pyramid 框架上编写的 Python 应用程序。

我们真的利用标准导入库对此进行日志记录(用于调试)。

当我们分析生产中的东西时,我们的日志事件似乎有相当多的开销。所有的字符串格式和循环加起来。我很想删除它,但我们不能——我们确实需要保留它以进行测试,有时需要在生产环境中进行调试。

我想知道是否有人有根据需要最小化日志记录的有效策略,因此这段代码可能会在我们的生产环境中执行期间“优化掉”而根本无法运行。

例如,在 mod_perl 下,编译器会“优化掉”在 False 常量下运行的语句

在伪代码中...(我已经很久没有接触 perl 了!)

use constant DEBUG => False ; 
if ( DEBUG ) { 
      log.debug("stuff here " + string ); 
} 

或

use constant DEBUG => False ; 
DEBUG && log.debug("stuff here " + string ); 

在那些场景下,对 log.debug 的调用甚至字符串插值都不会发生。

谁能推荐一种在 Python 下模仿该行为的有效方法?

请您参考如下方法:

使用__debug__。当使用 -O 命令行标志运行 Python 时,此标志设置为 False,并且 Python 将进一步在编译时优化调试代码。 我wrote a blog post on it几个月前。