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