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')