Python禁用日志记录消息

时间:2018-02-05 09:07:51

标签: python python-3.x debugging logging

我有一个程序,我在执行过程中记录了不同的东西。现在,这在调试期间一切正常,但是当我发货时,显然我希望根本不会调用日志记录功能。

我记得有一种方法可以在代码中保留日志调用,设置一些变量__debug__或其他东西,以便简单地忽略那些日志调用,因此他们甚至不创建堆栈框架在运行时减慢执行速度。

我很确定我以前见过这个,但我无法在任何地方找到它。我该怎么做?

最好的模拟是C条件编译:

#define LOGGED

现在而不是:

// code...

log(stuff);

// code...

我可以这样做:

// code...

#ifdef LOGGED
    log(stuff);
#endif

// code...

第一个选项每次调用日志函数,即使它没有显示,也使用像python这样的语言,其中函数调用往往很昂贵,特别是在紧密循环中,我想不会堵塞程序很多。

第二个选项更好,因为除非定义LOGGED,否则log(stuff)调用甚至不会被编译,它将被完全忽略。

我想在python中实现这一点,因为在我的情况下,日志记录和没有日志记录之间的差异大约是50%的性能差异。

0 个答案:

没有答案