Python:如何覆盖默认日志记录处理程序?

时间:2016-03-26 09:53:41

标签: python logging

假设我有一个记录器:

logger = logging.getLogger(__name__)

然后我添加一个文件处理程序。我希望所有日志都转到文件,所有信息和上面的日志都打印在屏幕上。

我知道我应该将文件处理程序的级别设置为logging.INFO。

但是,如果我使用logger.setLevel(logging.INFO),那么调试日志将不会转到该文件。如果我使用logger.setLevel(logging.DEBUG),则所有调试日志都将打印在屏幕上。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您应该在记录器上使用logger.setLevel(logging.DEBUG),在屏幕处理程序上使用handler.setLevel(logging.INFO)。这样记录器获取所有消息,文件处理程序获取所有消息,但屏幕或流处理程序仅获得INFO或更高。