【发布时间】:2015-03-18 23:35:08
【问题描述】:
我使用 LoggerAdapter 让我的 python 日志记录输出 Linux TID 而不是长的唯一 ID。但是这样我不会修改现有的logger,而是创建一个新对象:
new_logger = logging.LoggerAdapter(
logger=logging.getLogger('mylogger'),
extra=my_tid_extractor())
现在我希望这个LoggerAdapter 被某些模块使用。只要我知道一个全局变量被用作记录器,我就可以这样做:
somemodule.logger = new_logger
但这并不好 - 它仅在几种情况下有效,您需要知道模块使用的记录器变量。
您知道一种使LoggerAdapter 在全球范围内可用的方法吗?通过调用 s.th.喜欢
logging.setLogger('mylogger', new_logger)
或者:有没有其他方法可以让 Python logging 输出 Linux 线程 ID,如 ps 打印的那样?
【问题讨论】: