我正在使用日志记录模块打印一些数据。这是我的代码:
logging.basicConfig(
format="%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s",
level=logging.INFO,
handlers=[
logging.FileHandler("{0}/{1}.log".format(logPath, fileName)),
logging.StreamHandler(sys.stdout)
]
)
我想像这样在线程名的末尾添加一些数据:
2018-10-30 19:43:54,304 [Thread-2 %SOME INFO%] [WARNING] Foo bar baz
我该怎么做?
答案 0 :(得分:1)
Logger
类的“ log”方法(调试,信息,警告等)可以带有一个extra
参数,该参数是可以用作自定义属性的字典。 documentation说:
第二个关键字参数为
extra
,可用于传递 用于填充LogRecord的__dict__的字典 为具有用户定义属性的日志记录事件创建的。这些 然后可以根据需要使用自定义属性。例如,他们 可以并入已记录的消息中。
在您的示例中,我们必须在format
属性中添加新信息:
logging.basicConfig(
format="%(asctime)s [%(threadName)s %(threadInfo)s] [%(levelname)s] %(message)s",
level=logging.INFO,
handlers=[
logging.FileHandler("{0}/{1}.log".format(logPath, fileName)),
logging.StreamHandler(sys.stdout)
]
)
我们可以这样调用一个日志方法:
logging.info("Foo bar baz", extra={'threadInfo': 'SOME INFO'})