在配置文件配置日志
LOGGING = {
'version': 1,
'disable_existing_loggers': False, # 是否禁用已经存在的日志模块
'handlers': {
'file': { # 定义日志文件记录
#优先级: DEBUG、INFO、WARNING、ERROR、CRITICAL
'level': 'DEBUG', #
# 'class': 'logging.FileHandler', # 普通的日志记录类,不实用
'class': 'logging.handlers.TimedRotatingFileHandler', # 原本的按时间分割的日志记录类
'filename': './err.log', # 定义日志文件目录,logs文件夹没有就创建,err.log自动生成
'formatter': 'verbose',
'encoding': 'utf-8'
},
'console': { # 定义终端打印记录
'level': 'DEBUG', # 打印所有信息
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
},
'formatters': {
'verbose': { # 定义详细的日志信息
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
},
'loggers': {
'django': { # 使用django日志,指定使用上述定义的各个配置
'handlers': ['file', 'console'], # 同时记录到日志文件和在终端打印
'level': 'ERROR', #只打印错误日志
'propagate': True, # 是否向上传播
'formatter': 'verbose'
},
'app': { # 新增的 'app' 日志记录器配置
'handlers': ['file','console'], # 仅将日志输出到控制台
'level': 'INFO', # 设置日志级别为 DEBUG
'propagate': False, # 防止日志消息被根记录器或其他记录器重复处理
'formatter': 'verbose' },
'root': {
'handlers': [], # 默认情况下,根记录器不处理任何日志
'level': 'WARNING', # 如果需要,可以调整根记录器的日志级别
},
},
}
在需要打日志的地方
import logging
logging.config.dictConfig(LOGGING)
# 示例:使用配置的日志记录器
logger = logging.getLogger('app')
logger.info('这是一个info级别的日志')
最终实现,手动打日志 和 系统 error 级别报错 进文件 和 在终端展示
参考了: https://www.cnblogs.com/banbosuiyue/articles/15030761.html
标签:记录器,verbose,level,配置,Django,logging,日志,handlers From: https://www.cnblogs.com/kaibindirver/p/18344939