Python TimedRotatingFileHandler 记录到文件和 stderr

标签 python logging

我正在尝试使用 TimedRotatingFileHandler 将简单的登录包含到我的应用程序中。但是,我将输出同时放入指定文件和标准错误中。我将问题简化为一个小例子:

import logging, logging.handlers
import sys

logging.basicConfig(format='%(asctime)s %(message)s')
loghandler = logging.handlers.TimedRotatingFileHandler("logfile",when="midnight")
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addHandler(loghandler)

for k in range(5):
    logger.info("Line %d" %  k)

我的“日志文件”和该程序的 stderr 中都有 5 行日志。我做错了什么?

最佳答案

这是您可以只在日志文件上打印而不是标准输出/标准错误的方式:

import logging
from logging.handlers import TimedRotatingFileHandler

logHandler = TimedRotatingFileHandler("logfile",when="midnight")
logFormatter = logging.Formatter('%(asctime)s %(message)s')
logHandler.setFormatter( logFormatter )
logger = logging.getLogger( 'MyLogger' )
logger.addHandler( logHandler )
logger.setLevel( logging.INFO )

for k in range(5):
    logger.info("Line %d" %  k)

关于Python TimedRotatingFileHandler 记录到文件和 stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565256/

相关文章:

python - django 和 AWS SES 服务设置 554 错误

python - 具有多个子域的 Django - 有时会呈现不正确的模板

python - 如何在Python中编写CSV格式的输出文件?

Docker ubuntu cron 尾部日志不可见

java - 使用 logback 预防日志伪造

python - cx_Oracle 在连接字符串上使用 SID 而不是服务名称时不连接

java - 将日志文件流式传输到远程客户端

asp.net - 如何从 ASP.NET Core 中的 Controller 以外的其他类登录?

java - 如何删除 J2SE/J2EE 应用程序(非 Android)中的日志调用

python - 使用 Itertools 从多个列表中创建元素组合列表