Python logzero 和标准输出

Python logzero and stdout

logzero 将所有条目日志发送到一个文件,但也发送到标准输出。有没有办法避免污染标准输出?

我想在 Python 中完成此操作。我不想调用我的脚本并将其输出重定向到 /dev/null,因为如果我这样做,我将无法将有用的消息打印到标准输出。

编辑:正如@blues 指出的那样,logzero 将行发送到 stderr,而不是 stdout。

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')