我有以下内容来设置一个基本的记录器,以便在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;你必须自己做。