logging模块:

5种级别的日志记录模式

两种配置方式  #basicconfig、log对象(高可定制化)

 

import logging

logging.basicConfig(level = logging.DEBUG,  #设置输出哪个级别的错误

         format = '%(asctime)s % (filename) s [line:%(lineno)d] % (levelname)s %(message)s),

         datefmt = '%a, %d %b %Y % H:%M:%S'

         filename = '/tmp/test.log'

         filemode = 'w')

logging.debug('debug message')

logging.info('info message')

logging.warning('warning message')

logging.error('error message')

logging.critical('critical message')

 

basicconfig  简单,做的事情少,但是有中文乱码问题,且不能同时往文件和屏幕上输出

##################################################

配置log对象  稍微有点复杂,但是能做的事情更多

 

import logging

logger = logging.getlogger()

fh = logging.FileHandler('test.log',encoding = 'utf-8')  #创建一个写入文件handler

ch = logging.StreamHandler()  #创建一个输出到控制台handler

fomatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

fh.setLevel(logging.DEBUG)

 

fh.setFormatter(formatter)

ch.setFormatter(formatter)

logger.addHandler(fh)

logger.addHandler(ch)

 

logger.debug('debug message')

logger.info('info message')

logger.warning('warning message')

logger.error('error message')

logger.critical('critical message')