python中logging

1、root logger以及logger斧子关系    http://www.pythonclub.org/modules/logging

#coding=utf-8
__author__ = 'nerrissaniu'


import logging
 
# 设置root logger
r = logging.getLogger()
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
r.addHandler(ch)
 
# 创建一个logger作为父亲
p = logging.getLogger('foo')
p.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(message)s')
ch.setFormatter(formatter)
p.addHandler(ch)
 
# 创建一个孩子logger
c = logging.getLogger('foo.bar')
c.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(message)s')
ch.setFormatter(formatter)
c.addHandler(ch)
c.debug('foo')

输出:

foo
2016-08-08 17:58:09,006 - foo
2016-08-08 17:58:09,006 - DEBUG - foo

 2、StreamHandler和FileHandler

3、Handler.setLevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略

4、TimedRotatingFileHandler(filename [,when [,interval [,backupCount]]])   http://www.361way.com/python-logging-timedrotating/5043.html

filename 是输出日志文件名的前缀

when 是一个字符串的定义如下:

  1. S”: Seconds
  2. M”: Minutes
  3. H”: Hours
  4. D”: Days
  5. W”: Week day (0=Monday)
  6. midnight”: Roll over at midnight

interval 是指等待多少个单位when的时间后,Logger会自动重建文件,当然,这个文件的创建取决于filename+suffix,若这个文件跟之前的文件有重名,则会自动覆盖掉以前的文件,所以有些情况suffix要定义的不能因为when而重复。

backupCount 是保留日志个数。默认的0是不会自动删除掉日志。若设10,则在文件的创建过程中库会判断是否有超过这个10,若超过,则会从最先创建的开始删除。

原文地址:https://www.cnblogs.com/nerrissa/p/5748227.html