为什么我的日志记录在Python 3中不起作用?

问题描述:

我想在Python 3这种方式增加日志处理程序:为什么我的日志记录在Python 3中不起作用?

$ python3 
Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import logging 
>>> 
>>> logger = logging.getLogger() 
>>> handler = logging.StreamHandler() 
>>> handler.setLevel(logging.INFO) 
>>> logger.addHandler(handler) 
>>> 
>>> logging.info("my info") 
>>> logging.warning("my warning") 
my warning 

我指定的记录等级为INFO。为什么logging.info("my info")不输出?

+0

如果你只是想记录到一个单一的处理程序,您可以使用['logging.basicConfig'](https://docs.python.org/3/library /logging.html#logging.basicConfig) – Holloway

因为你need也设置logger杠杆。

import logging 

logger = logging.getLogger() 
# here 
logger.setLevel(logging.INFO) 
handler = logging.StreamHandler() 
handler.setLevel(logging.INFO) 
logger.addHandler(handler) 

输出:

>>> logging.info("my info") 
my info 
>>> logging.warning("my warning") 
my warning 

记录仪有水平以及处理程序。 default level被警告,因此您的信息被忽略。

为了让您的范例工作,请包括logger.setLevel(logging.INFO)