首页 > 解决方案 > 如何将python记录器信息重定向到python中的日志文件

问题描述

我想将所有 python 记录器消息写入日志文件。我有这段代码,但代码在控制台上显示消息,只是创建日志文件,但什么也不写。

file_handler = logging.FileHandler(filename='tmp.log')
stdout_handler = logging.StreamHandler(sys.stdout)
handlers = [file_handler, stdout_handler]

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',
    handlers=handlers
)
logger = logging.getLogger("somename")

我在这里做错了什么

标签: pythonlogging

解决方案


这样做,而不是:

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',
    filename='tmp.log'
)
logging.debug("somename")

如果filename提供了参数,basicConfig则表示文件以这种模式打开。默认为a,表示追加


推荐阅读