gpt4 book ai didi

python - 如何使用 python 日志记录模块打印多行日志?

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:28 24 4
gpt4 key购买 nike

我想使用 python 日志记录模块创建多行记录器。当我使用下面的代码片段来格式化记录器时:

import logging
logger = logging.getLogger(file_name)
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)

当我使用 logger.info("""line 1\nline 2\n line 3""")时,我得到以下多行日志的输出p>

2017-07-20 13:21:14,754 - my_logger.py - INFO - line 1
line 2
line 3

我想要我的输出如下:

2017-07-20 13:21:14,754 - my_logger.py - INFO - line 1
2017-07-20 13:21:14,754 - my_logger.py - INFO - line 2
2017-07-20 13:21:14,754 - my_logger.py - INFO - line 3

最佳答案

您可以创建自己的格式化程序:

import logging
class MultilineFormatter(logging.Formatter):
def format(self, record: logging.LogRecord):
save_msg = record.msg
output = ""
for line in save_msg.splitlines():
record.msg = line
output += super().format(record) + "\n"
record.msg = save_msg
record.message = output
return output

比修改你的记录器初始化如下:

formatter = MultilineFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

关于python - 如何使用 python 日志记录模块打印多行日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216826/

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