gpt4 book ai didi

Python Colorlog 不在带有颜色的日志文件中打印

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:12 25 4
gpt4 key购买 nike

我正在使用 Python colorlogs 为不同级别的日志设置不同的颜色。当我运行代码时,控制台日志是彩色的,但日志文件没有颜色。我正在使用下面的代码

def setup_logger(logfiletouse):
"""Return a logger with a default ColoredFormatter."""
formatter = colorlog.ColoredFormatter(
"%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
datefmt=None,
reset=True,
log_colors={
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red',
}
)

log = logging.getLogger(logfiletouse)

handler = logging.StreamHandler()
handler.setFormatter(formatter)
log.addHandler(handler)
log.setLevel(logging.DEBUG)

return log

这是我第一次尝试使用 Python colorlogs。任何帮助表示赞赏。

最佳答案

colorlog 和大多数其他终端着色库使用的彩色输出通过 shell 的转义序列更改用户终端的属性。

在实践中,这将打印人类不可读的 shell 转义序列,例如 \[\033[34m\]。您的 shell 负责将这些序列解析为显示器上的颜色。

纯文本文件不支持编码到其中的颜色信息,因此通常在写入文件时,所有日志记录工具都会关闭颜色支持,否则您的日志文件中会出现乱码文本。试想一个到处都是那些不可读的转义序列的纯文本文件。

有关 shell 着色和转义序列的更多信息,您可以查看 http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html (特定于 bash,在其他 shell 上类似)

关于Python Colorlog 不在带有颜色的日志文件中打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37959077/

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