将python日志记录设置为stdout的最简单方法



我有以下内容来设置一个基本的记录器,以便在cron作业中打印输出:

import logging
log=logging.getLogger()
log.setLevel(logging.DEBUG)
log.addHandler(logging.StreamHandler())
log.info('hi')

这是最直接的方法吗,还是有更好的方法?

如果您只需要将消息打印到stdout,那么logging.basicConfig是您列出的配置的一个方便快捷方式。它将创建一个StreamHandler,将默认的Formatter附加到它,并将处理程序附加到根记录器。

import logging
logging.basicConfig(level=logging.DEBUG, stream=sys.stdout)
logging.getLogger().info('hi')

查看文档,了解更多配置可能性;例如

logging.basicConfig(filename='some.log', level=logging.DEBUG)

将配置写入文件some.log而不是stdout。

请注意,如果记录器已经配置(意味着已经有处理程序连接到根记录器(,logging.basicConfig将不会执行任何操作。所以这个代码:

import logging
logging.getLogger().addHandler(logging.FileHandler(filename='some.log'))
logging.basicConfig(level=logging.DEBUG)

将不再配置日志记录到stdout;你必须自己做。

最新更新