我刚刚开始学习如何使用structlog
,我很难弄清楚如何在写入文件时关闭彩色日志记录。本质上,我所做的是将与标准日志记录模块一起使用的旧代码转换为与 structlog 一起使用 - 这就是我想出的:
formatter = logging.Formatter(
fmt=LOGGER_OUTPUT_FORMAT,
datefmt=LOGGER_DATETIME_FORMAT,
)
handler = logging.StreamHandler()
handler.setLevel(level)
handler.setFormatter(formatter)
logger.addHandler(handler)
# create a file handler
formatter = logging.Formatter(
fmt=LOGGER_OUTPUT_FORMAT,
datefmt=LOGGER_DATETIME_FORMAT,
)
handler = RotatingFileHandler(
filename=LOGFILE_PATH,
maxBytes=4000000,
backupCount=20,
)
handler.setLevel(level)
handler.setFormatter(formatter)
logger.addHandler(handler)
structlog.configure(logger_factory=LoggerFactory())
logger = structlog.getLogger('output_logger')
我不知道该怎么做是在哪里插入行以更改格式化程序,以便在将日志记录输出保存到文件时不使用彩色输出。我猜我可以卸载colorama
,但这似乎违背了实际学习如何使用 structlog 的目的。我已经仔细研究了 structlog 手册,但这对我来说没有意义,而且我似乎尝试的一切都会引发错误,所以任何指导都将不胜感激!