Python通过logging.config.fileConfig()配置日志
level:
CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
class:
handlers.RotatingFileHandler(重定向到文件,并设置单个日志文件的大小和日志文件个数)
handlers.TimedRotatingFileHandler(重定向到文件,并设置单个日志切分时间和日志文件个数)
StreamHandler(将日志输出到控制台)
FileHandler(将日志信息输出保存到文件)
配置文件logging.conf信息如下:
#logger定义与配置,必须包含root
[loggers]
keys=root,eb_nfvo
[logger_root]
level=DEBUG #日志等级
handlers=eb_nfvo_stream
[logger_eb_nfvo]
handlers=eb_nfvo_stream,eb_nfvo_timed_rotating_file #必须引用下面配置过的handler
qualname=eb_nfvo #logger层级中的名字,应用程序中用logging.getLogger('eb_nfvo')使用
propagate=0 #通常为0
#handler定义与配置(定义日志打印的位置,如:控制台输出、文件输出)
[handlers]
keys=eb_nfvo_stream,eb_nfvo_timed_rotating_file
[handler_eb_nfvo_stream]
class=StreamHandler #定义打印日志的方式
args=(sys.stderr,) #给class传入的参数,元组形式(class类型不同,传参方式不同)
level=DEBUG #与logger中的level保持一致
formatter=nfvo_form
[handler_eb_nfvo_timed_rotating_file]
class=handlers.TimedRotatingFileHandler
args=('../logs/eb_nfvo.log','H',8,270) #重定向到文件,每8小时切分一次,最多270个(90天)
level=DEBUG郑州妇科医院 http://www.hnzzkd.com/
formatter=nfvo_form #指定日志格式,需指定下面已经定义好的
#formatter定义与配置(设置打印日志的格式)
[formatters]
keys=nfvo_form
[formatter_nfvo_form]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S
程序中引用的代码如下:
#! /usr/bin/python2
import logging
import logging.config
logging.config.fileConfig('configure/logging.conf') #配置文件的路径
logger = logging.getLogger('eb_nfvo')