logging分為4個模塊: loggers, handlers, filters, and formatters.
●loggers: 提供應(yīng)用程序調(diào)用的接口
●handlers: 把日志發(fā)送到指定的位置
●filters: 過濾日志信息
●formatters: 格式化輸出日志
Logger
Logger.setLevel() 設(shè)置日志級別
Logger.addHandler()和Logger.removeHandler() 增加和刪除日志處理器
Logger.addFilter()和Logger.removeFilter() 增加和刪除過濾器
Logger.debug(), Logger.info(), Logger.warning(), Logger.error(), and Logger.critical() 創(chuàng)建不同的級別的日志
getLogger() 獲取日志的根實例
Handler
setLevel() 設(shè)置日志級別
setFormatter() 設(shè)置輸出格式
addFilter() and removeFilter() 增加和刪除過濾器
Formatter
默認形式為: %Y-%m-%d %H:%M:%S.
格式為: %()s
日志配置管理
硬編碼形式
# create logger
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
代碼:
logging.config.fileConfig('logging.conf')
# create logger
logger = logging.getLogger('simpleExample')
# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
[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
datefmt=
%(levelno)s: 打印日志級別的數(shù)值
%(levelname)s: 打印日志級別名稱
%(pathname)s: 打印當(dāng)前執(zhí)行程序的路徑,其實就是sys.argv[0]
%(filename)s: 打印當(dāng)前執(zhí)行程序名
%(funcName)s: 打印日志的當(dāng)前函數(shù)
%(lineno)d: 打印日志的當(dāng)前行號
%(asctime)s: 打印日志的時間
%(thread)d: 打印線程ID
%(threadName)s: 打印線程名稱
%(process)d: 打印進程ID
%(message)s: 打印日志信息
流程圖

新聞熱點
疑難解答
圖片精選