一、日志级别
| 日志级别 | 对应的数值 |
|---|---|
| notset | 0 |
| debug | 10 |
| info | 20 |
| warning | 30 默认级别 |
| error | 40 |
| critical | 50 |
当给logging模块设置一个级别后,当日志级别低于设置的值时,日志消息不会被记录
1.默认设置
import logging
logging.debug('---debug')
logging.info('---info')
logging.warning('---warning')
logging.error('---error')
logging.critical('---critical')
运行结果
WARNING:root:---warning
ERROR:root:---error
CRITICAL:root:---critical
这里没有显示debug和info,这是因为默认日志级别是warning,所有低于它的级别不显示
2.设置日志级别
这里设置默认级别是INFO。
import logging
logging.basicConfig(level=logging.INFO)
logging.debug('---debug')
logging.info('---info')
logging.warning('---warning')
logging.error('---error')
logging.critical('---critical')
显示结果
INFO:root:---info
WARNING:root:---warning
ERROR:root:---error
CRITICAL:root:---critical
3.日志格式
在上边的结果中可以看出,打印消息的格式是:
日志级别:logger处理器的名字:消息
3.1 日志格式相关变量
| 变量名 | 含义 |
|---|---|
| %(asctime)s | 默认时间格式,精确到毫秒 |
| %(message)s | 日志信息 |
| %(filename)s | 调用日志输出函数的模块的文件名 |
| %(name)s | 所使用的日志器名称,默认是’root’,因为默认使用的是 rootLogger |
3.2 定义日志格式
format是定义的每行日志的显示格式。datefmt定义的是%(asctime)s 变量显示时间的格式
import logging
log_format = "%(asctime)s %(message)s"
date_format = "%Y-%d-%m %H:%M:%S"
logging.basicConfig(
level=logging.INFO,
format=log_format,
datefmt=date_format
)
logging.debug('---debug')
logging.info('---info')
logging.warning('---warning')
logging.error('---error')
logging.critical('---critical')
4.输出到文件
在basicConfig中传入filename参数
logging.basicConfig(
level=logging.INFO,
format=log_format,
datefmt=date_format,
filename='./test.log'
)
17万+

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



