我正在使用 Python 的日志记录模块将一些调试字符串记录到一个运行良好的文件中。现在另外,我想使用这个模块将字符串打印到标准输出。我该怎么做呢?为了将我的字符串记录到文件中,我使用以下代码:
import logging
import logging.handlers
logger = logging.getLogger("")
logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
LOGFILE, maxBytes=(1048576*5), backupCount=7
)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
然后调用一个记录器函数
logger.debug("I am written to the file")
在这里感谢您的帮助!
原文由 stdcerr 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需获取根记录器的句柄并添加
StreamHandler
。StreamHandler
写入标准错误。不确定您是否真的需要 stdout 而不是 stderr,但这是我在设置 Python 记录器时使用的,我还添加了FileHandler
。然后我所有的日志都去这两个地方(这听起来像你想要的)。如果要输出到
stdout
而不是stderr
,只需将其指定给StreamHandler
构造函数即可。您还可以在其中添加
Formatter
以便所有日志行都有一个共同的标题。IE:
打印为以下格式: