logging 可以在程序运行过程中跟踪记录一些值或者事件信息。它提供了一组简便的函数,如debug(),info(),warnig(),error()以及critical().具体如下:
logging 模块由四个部分构成:
Loggers:提供应用程序直接使用的接口
Handlers:将Loggers产生的日志传到指定位置
Filters:对输出日志进行过滤
Formatters:控制输出格式
用法实例:
1、直接使用
import logging
logging.basicConfig(level=logging.INFO, #信息级别
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')
2、定义logging.conf文件
[loggers]
keys=root,simpleExample
[handlers]
keys=consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_simpleExample]
level=DEBUG
handlers=consoleHandler
qualname=simpleExample
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
3、创建YAML格式的文件
version: 1
formatters:
simple:
format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
handlers:
console:
class: logging.StreamHandler
level: DEBUG
formatter: simple
stream: ext://sys.stdout
loggers:
simpleExample:
level: DEBUG
handlers: [console]
propagate: no
root:
level: DEBUG
handlers: [console]