如何减少重复的代码?

时间:2016-12-15 07:45:11

标签: python logging

我必须打印线程名称,但我需要在任何地方添加函数调用:

self.logger.debug("{} log".format(currentThread().getName()))
self.logger.error("{} log".format(currentThread().getName()))

我使用日志记录模块,是否可以添加来自函数调用的日志前缀?

Antoher的情况是记录器不是来自记录模块,是否可以对函数进行修补,生成一些函数以便我可以像这样调用它:

self.logger.my_debug("log")
self.logger.my_error("log")

我不想手动编写许多函数,并使用不同日志记录级别的重复代码,如果代码是这样的话应该很好

for log_level in ("error", "warn", "debug", "info")
...generating functions...

1 个答案:

答案 0 :(得分:0)

查看文档:{​​{3}}

您的代码可能如下所示:

FORMAT = '%(asctime)-15s %(threadName)s %(funcName)-8s %(message)s'
logging.basicConfig(format=FORMAT)
logger = logging.getLogger('mylogger')
logger.warning("message here)

强调一点:日志记录通常是全局配置的。特别想想“什么格式有日志”和“它在哪里被记录?”在那里决定。 虽然我不喜欢python日志系统b / C它相当贬值,但我想说如果你想有效地记录它,理解它是如何工作的。