# 日志配置
LOGGING = {
"version": 1, #保留字段,不能变
"disable_existing_loggers": False, # 是否禁用已经存在的日志实例(django自带的报错),一般不禁用.
"formatters": { #用来记录日志的输出格式
"default": {
"format": '%(levelname)s|%(asctime)s|%(module)s|%(lineno)d|%(message)s'
},
"simple": {
"format": '%(asctime)s|%(levelname)s|%(message)s'
}
},
'filters': { # 定义日志的过滤器
'require_debug_true': { # 只有在setting中的 DEBUG = True 的时候才会生效
'()': 'django.utils.log.RequireDebugTrue',
},
},
"handlers": { #定义日志的详细格式
"console": {
"level": "DEBUG",
"formatter": "simple",
'class': 'logging.StreamHandler', #用来定义日志的切分格式
'filters': ['require_debug_true'], #只有在debug=True的时候才会在屏幕上显示内容
},
"admin": {
"level": "INFO",
"formatter": "default",
'class': 'logging.handlers.RotatingFileHandler', # 按照大小来切割
"filename": "/var/log/issue.log",# 日志位置
"maxBytes": 1024 * 1024 * 10, # 日志的大小
"encoding": "utf-8", #编码格式
"backupCount": 5 #最多保留5个
},
"error": {
"level": "ERROR",
"formatter": "default",
'class': 'logging.handlers.TimedRotatingFileHandler', # 按照时间来切分
"filename": "/var/log/issue.error",
"when": "D", # 每天一切, 可选值有S/秒 M/分 H/小时 D/天 W0-W6/周(0=周一) midnight/如果没指定时间就默认在午夜
"encoding": "utf-8"
}
},
"loggers": {
"django": {
"handlers": ["console", "admin"],
"level": "DEBUG"
},
"default": {
"handlers": ["admin", "error"],
"level": "INFO",
'propagate': True, # 是否向上一级logger实例传递日志信息
}
}
}