Python 终端输出文件的不同日志级别

Python different log level for outputfile an terminal

有没有办法在不使用外部模块的情况下,将终端输出的日志级别设置为info,将写入*.log的日志级别设置为warning?

我为什么要问? 我有一个脚本会 运行 很长一段时间。因此,我想在终端中看到我的代码仍然是 运行ning,但不想获取 *.log 文件中的所有信息。只有当日志记录级别为 30 或更高时,它才会打印到我的日志文件。

这是非常标准的日志记录配置。只需创建一个记录器并添加一个具有信息级别的流处理程序和一个具有错误级别的文件处理程序。

import logging

fh = logging.FileHandler('logs.txt')
fh.setLevel(logging.ERROR)

sh = logging.StreamHandler()
sh.setLevel(logging.INFO)

logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addHandler(fh)
logger.addHandler(sh)

logger.info('this is only on console')
logger.error('this is in file too')