假设我有一个记录器:
logger = logging.getLogger(__name__)
然后我添加一个文件处理程序。我希望所有日志都转到文件,所有信息和上面的日志都打印在屏幕上。
我知道我应该将文件处理程序的级别设置为logging.INFO。
但是,如果我使用logger.setLevel(logging.INFO)
,那么调试日志将不会转到该文件。如果我使用logger.setLevel(logging.DEBUG)
,则所有调试日志都将打印在屏幕上。
如何解决这个问题?
答案 0 :(得分:2)
您应该在记录器上使用logger.setLevel(logging.DEBUG)
,在屏幕处理程序上使用handler.setLevel(logging.INFO)
。这样记录器获取所有消息,文件处理程序获取所有消息,但屏幕或流处理程序仅获得INFO
或更高。