四个组件
- Loggers: 日志记录的处理类/对象,一个 Logger 可以有多个 Handlers
- Handlers:对于每一条日志消息如何处理,记录到文件、控制台,还是网络
- Filters:定义过滤器,用于 Logger/Handler 之上
- Formmaters:定义日志文本记录的格式
日志级别
- DEBUG:调试
- INFO:常用的系统信息
- WARNING::小的告警,不影响主要功能
- ERROR:系统出现不可忽视的错误
- CRITICAL:非常严重的错误
示例:自定义日志与系统日志输出到文件与控制台
在 settings.py 文件中加入下面代码
LOGGING = {
'version': 1, # python 统一固定用法
'disable_existing_loggers': False, # 是否禁用系统里的其他 Logger,默认 False
'formatters': {
'simple': {
'format': '%(asctime)s %(name)-12s %(lineno)d %(levelname)-8s %(message)s',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'simple',
},
'file': {
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 1024 * 1024 * 5, # 文件大小
'backupCount': 5, # 备份份数
'formatter': 'simple', # 使用哪种formatters日志格式
# 日志输出文件 项目的上一级目录,可自定义
'filename': os.path.join(os.path.dirname(BASE_DIR), 'admin.log')
}
},
# root 是系统全局级别默认 logger 可以通过 logging.getLogger(__name__) 获取
'root': {
'handlers': ['console', 'file'],
'level': 'INFO',
},
}