Logging 简易使用
python的logging模块提供了通用的日志系统,是python自带的一个包,无需安装,直接import即可。
logger 模块四大组件
- Logger: 提供了应用程序可以直接使用的接口,每个程序在输出信息之前都要获得一个Logger
Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler
- Handler: 将日志记录(log record)发送到合适的目的地(destination),常用的是StreamHandler和FileHandler。(可以通过用basicConfig显示指定filename, 获取FileHandler;此外显示构造如下)。
FileHandler(filename[,mode])
-
Filter: 提供一种优雅的方式决定一个日志记录是否发送到handler。
-
Formatter: 指定日志记录输出的具体格式。
【todo】四个组件-系统性使用
对root logger 进行一次性配置:
# -*- coding=utf-8 -*-
import logging
# logging.basicConfig(level=logging.INFO, filename='log.txt', format='%(asctime)s %(message)s',filemode='w') # 输出到文件里
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s',filemode='w') # 输出到终端,配合 重定向何以输出到指定文件里
## level 日志等级,当为某个应用程序指定一个日志级别后,应用程序会记录所有日志级别 >= 指定日志级别的日志信息。当前配置 会输出级别为INFO及以上的信息
## filename 用指定的文件名创建FiledHandler,日志 会被存储在 指定文件 中
## filemode 文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”
## formatter, 定义了最终Log信息的顺序、结构和内容
#### %(name)s --Logger的名字
#### %(levelname)s --文本形式的日志级别
#### %(message)s --用户输出的信息
#### %(asctime)s --字符串形式的当前时间
# datefmt:指定日期时间格式,如果format参数中存在asctime,则需要指定时间格式
logging.debug('this is debug message.')
logging.info('this is info message.')
logging.warning('this is warning message.')
logging.error('this is error message.')
logging.critical('this is critical message.')
日志level信息
# CRITICAL = 50
# FATAL = CRITICAL
# ERROR = 40
# WARNING = 30
# WARN = WARNING
# INFO = 20
# DEBUG = 10
# NOTSET = 0
1630

被折叠的 条评论
为什么被折叠?



