LOGGING = {
'version': 1, # 使用的python內置的logging模塊,那么python可能會對它進行升級,所以需要寫一個版本號,目前就是1版本
'disable_existing_loggers': False, # 是否去掉目前項目中其他地方中以及使用的日志功能,但是將來我們可能會引入第三方的模塊,里面可能內置了日志功能,所以盡量不要關閉。
'formatters': { # 日志記錄格式
'verbose': { # levelname等級,asctime記錄時間,module表示日志發生的文件名稱,lineno行號,message錯誤信息
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
},
},
'filters': { # 過濾器:可以對日志進行輸出時的過濾用的
'require_debug_true': { # 在debug=True下產生的一些日志信息,要不要記錄日志,需要的話就在handlers中加上這個過濾器,不需要就不加
'()': 'django.utils.log.RequireDebugTrue',
},
'require_debug_false': { # 和上面相反
'()': 'django.utils.log.RequireDebugFalse',
},
},
'handlers': { # 日志處理方式,日志實例
'console': { # 在控制台輸出時的實例
'level': 'DEBUG', # 日志等級;debug是最低等級,那么只要比它高等級的信息都會被記錄
'filters': ['require_debug_true'], # 在debug=True下才會打印在控制台
'class': 'logging.StreamHandler', # 使用的python的logging模塊中的StreamHandler來進行輸出
'formatter': 'simple'
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
# 日志位置,日志文件名,日志保存目錄必須手動創建
'filename': os.path.join(os.path.dirname(BASE_DIR), "logs/luffy.log"), # 注意,你的文件應該有讀寫權限。
# 日志文件的最大值,這里我們設置300M
'maxBytes': 300 * 1024 * 1024,
# 日志文件的數量,設置最大日志數量為10
'backupCount': 10,
# 日志格式:詳細格式
'formatter': 'verbose',
'encoding': 'utf-8', # 設置默認編碼,否則打印出來漢字亂碼
},
},
# 日志對象
'loggers': {
'django': { # 和django結合起來使用,將django中之前的日志輸出內容的時候,按照我們的日志配置進行輸出,
'handlers': ['console', 'file'], # 將來項目上線,把console去掉
'propagate': True,
# 冒泡:是否將日志信息記錄冒泡給其他的日志處理系統,工作中都是True,
# 不然django這個日志系統捕獲到日志信息之后,其他模塊中可能也有日志記錄功能的模塊,就獲取不到這個日志信息了
},
}
}