1.logging模块简介
-
日志级别
- DEBUG:排查故障时使用的低级别系统信息;对应logging.debug()
- INFO:一般系统信息,如django框架下接口调用信息;对应logging.info()
- WARNING:描述系统发生小问题的信息;对应logging.warning()
- ERROR:描述系统发生大问题的信息;对应logging.error()
- CRITICAL:描述系统发生严重问题的信息;对应logging.critical()
-
关键参数说明
参数 | 说明 |
---|---|
loggers | 记录器:日志系统的入口,每个 logger 都是命名了的 bucket, 消息写入 bucket 以便进一步处理 |
handlers | 处理器:Handler 是决定如何处理 logger 中每一条消息的引擎。它描述特定的日志行为,比如把消息输出到屏幕、文件或网络 socket |
formatters | 格式化器:描述了文本的格式。一个 formatter 通常由包含 LogRecord attributes 的 Python 格式化字符串组成 |
filters | 过滤器: 在日志从 logger 传到 handler 的过程中,使用 Filter 做额外控制,如只允许某个特定来源的 ERROR 消息输出 |
2.django框架日志配置
- setting.py文件
- 方法:添加LOGGING配置,如下代码所示
- 效果:启动django服务后,在工程中自动创建log/access.log文件,按天分割日志,保存最近7天的日志
import os
import logging
import django.utils.log
import logging.handlers
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
……(此处省略其他配置)
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
#可定义多种日志格式,key应用于handlers的formatter配置项
'standard': {
'format': '%(asctime)s [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'} #日志格式
},
'filters': {
},
'handlers': {
#可定义多种日志处理器,key应用于loggers的handlers
'default': {
'level':'DEBUG', #日志级别
'class':'logging.handlers.TimedRotatingFileHandler', #日志处理方式:按时间分割
'filename': os.path.join(BASE_DIR, 'log/access.log'), #日志输出文件
'when' : 'D', #按天自动分割备份日志
'backupCount'