gpt4 book ai didi

python - 在 python 记录器中将多个字段一起填充

转载 作者:行者123 更新时间:2023-12-05 06:38:30 25 4
gpt4 key购买 nike

无论如何,是否可以在格式化程序中将多个日志记录值组合在一起,以便将它们作为单个项目进行填充?

我的日志格式化程序如下所示:

'%(asctime)s %(module)s:%(funcName)s:%(lineno)-15d %(levelname)-8s %(name)s: %(message)s'

我希望它能将 module、funcName 和 lineno 字段填充在一起。使用此格式化程序运行会产生以下输出:

2017-09-01 21:06:29,299 app:main:48              INFO     pub: main start
2017-09-01 21:06:29,434 app:push_data:36 INFO pub: push data

但我希望它是这样的:

2017-09-01 21:06:29,299 app:main:48           INFO     pub: main start
2017-09-01 21:06:29,434 app:push_data:36 INFO pub: push data

最佳答案

我最近遇到了类似的问题,通过自定义 logging.Formatter 解决了这个问题。

在您的 ini 文件中,在格式化程序 block 下添加以下行:

class=my_log_formatter.MyLogFormatter

此外,如果存在以 format= 开头的行,您还应该将其删除。它看起来像这样:

format=%(asctime)s %(name)-40s:%(lineno)-4s %(levelname)-8s %(message)s

然后创建一个新类:

import logging
class MyLogFormatter(logging.Formatter):
def format(self, record):
location = '%s.%s:%s' % (record.name, record.funcName, record.lineno)
msg = '%s %-60s %-8s %s' % (self.formatTime(record), location, record.levelname, record.msg)
record.msg = msg
return super(MyLogFormatter, self).format(record)

关于python - 在 python 记录器中将多个字段一起填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com