四个组件

  • Loggers: 日志记录的处理类/对象,一个 Logger 可以有多个 Handlers
  • Handlers:对于每一条日志消息如何处理,记录到文件、控制台,还是网络
  • Filters:定义过滤器,用于 Logger/Handler 之上
  • Formmaters:定义日志文本记录的格式

日志级别

  • DEBUG:调试
  • INFO:常用的系统信息
  • WARNING::小的告警,不影响主要功能
  • ERROR:系统出现不可忽视的错误
  • CRITICAL:非常严重的错误

示例:自定义日志与系统日志输出到文件与控制台

在 settings.py 文件中加入下面代码

  1. LOGGING = {
  2. 'version': 1, # python 统一固定用法
  3. 'disable_existing_loggers': False, # 是否禁用系统里的其他 Logger,默认 False
  4. 'formatters': {
  5. 'simple': {
  6. 'format': '%(asctime)s %(name)-12s %(lineno)d %(levelname)-8s %(message)s',
  7. },
  8. },
  9. 'handlers': {
  10. 'console': {
  11. 'class': 'logging.StreamHandler',
  12. 'formatter': 'simple',
  13. },
  14. 'file': {
  15. 'class': 'logging.handlers.RotatingFileHandler',
  16. 'maxBytes': 1024 * 1024 * 5, # 文件大小
  17. 'backupCount': 5, # 备份份数
  18. 'formatter': 'simple', # 使用哪种formatters日志格式
  19. # 日志输出文件 项目的上一级目录,可自定义
  20. 'filename': os.path.join(os.path.dirname(BASE_DIR), 'admin.log')
  21. }
  22. },
  23. # root 是系统全局级别默认 logger 可以通过 logging.getLogger(__name__) 获取
  24. 'root': {
  25. 'handlers': ['console', 'file'],
  26. 'level': 'INFO',
  27. },
  28. }