【发布时间】:2020-11-05 11:22:37
【问题描述】:
logzero 将所有条目日志发送到文件,但也发送到标准输出。有没有办法避免污染标准输出?
我想在 Python 中执行此操作。我不想调用我的脚本并将其输出重定向到 /dev/null,因为如果这样做,我将无法将有用的消息打印到标准输出。
编辑:正如@blues 指出的那样,logzero 将行发送到标准错误,而不是标准输出。
【问题讨论】:
标签: python python-logging
logzero 将所有条目日志发送到文件,但也发送到标准输出。有没有办法避免污染标准输出?
我想在 Python 中执行此操作。我不想调用我的脚本并将其输出重定向到 /dev/null,因为如果这样做,我将无法将有用的消息打印到标准输出。
编辑:正如@blues 指出的那样,logzero 将行发送到标准错误,而不是标准输出。
【问题讨论】:
标签: python python-logging
logzero 实际上并没有将任何日志发送到 stdout,它们被发送到 stderr。因此,您可以将它们重定向到 /dev/null 而不会影响您的常规输出。
但是对于 logzero 也有一个 kwarg 根本不使用这个处理程序:
import logzero
logger = logzero.setup_default_logger(disableStderrLogger=True)
logzero.logfile('zero.log')
logger.info('appears in file but not on terminal')
不过,我建议改为只使用本机 python 日志记录模块,因为它实际上更容易设置为仅用于文件记录:
import logging
logging.basicConfig(filename='logging.log', level='DEBUG')
logging.info('will be logged to file')
【讨论】: