您应该能够添加一个StreamHandler来处理标准输出,并将处理程序的日志级别设置为高于50的级别。(标准日志级别为50及以下。)
我会这样做的一个例子...
import logging
import sys
console_log_level = 100
logging.basicConfig(level=logging.INFO,
format="%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s",
filename="testing.log",
filemode="w")
console = logging.StreamHandler(sys.stdout)
console.setLevel(console_log_level)
root_logger = logging.getLogger("")
root_logger.addHandler(console)
logging.debug("debug log message")
logging.info("info log message")
logging.warning("warning log message")
logging.error("error log message")
logging.critical("critical log message")
testing.log的内容...
2019-11-21 12:53:02,426,426 root INFO info log message
2019-11-21 12:53:02,426,426 root WARNING warning log message
2019-11-21 12:53:02,426,426 root ERROR error log message
2019-11-21 12:53:02,426,426 root CRITICAL critical log message
注意:我使用
console_log_level
变量的唯一原因是因为我从一个默认函数中提取了大部分代码,该函数将根据参数值设置控制台日志级别。这样,如果我想让脚本“安静”,我可以根据脚本的命令行参数更改日志级别。
logging.getLogger()
(无参数)将获取根记录器。它是层次结构中最高的记录器,可能会记录您的情况。您应该尝试设置其级别。 - Klaus D.logging.basicConfig(filename='my.log', level=logging.INFO)
和常规的logging.info(...)
。希望这可以帮助到您。 - StressedBoi69420