django的日誌配置檔案
阿新 • • 發佈:2020-09-19
django的日誌配置檔案
放入settings.py中
# logger import datetime LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'standard': { 'format': '%(asctime)s [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s] %(message)s'} }, 'filters': { }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, }, 'default': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/engine_{}.log'.format("/var/log/project", datetime.datetime.now().date()), # 日誌輸出檔案 'maxBytes': 1024 * 1024 * 5, # 檔案大小 'backupCount': 5, # 備份份數 'formatter': 'standard', # 使用哪種formatters日誌格式 }, 'error': { 'level': 'ERROR', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/engine_Error_{}.log'.format("/var/log/project", datetime.datetime.now().date()), 'maxBytes': 1024 * 1024 * 5, 'backupCount': 5, 'formatter': 'standard', }, 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'standard' }, 'request_handler': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/engine_Request_{}.log'.format("/var/log/project", datetime.datetime.now().date()), 'maxBytes': 1024 * 1024 * 5, 'backupCount': 5, 'formatter': 'standard', }, 'scripts_handler': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'filename': '{}/engine_Script_{}.log'.format("/var/log/project", datetime.datetime.now().date()), 'maxBytes': 1024 * 1024 * 5, 'backupCount': 5, 'formatter': 'standard', } }, 'loggers': { # 框架本身執行相關日誌 # 'django': { # 'handlers': ['default'], # 'level': 'DEBUG', # 'propagate': False # }, 'django.request': { 'handlers': ['request_handler'], 'level': 'DEBUG', 'propagate': False, }, 'scripts': { 'handlers': ['scripts_handler'], 'level': 'INFO', 'propagate': False }, # 只輸出到控制檯,不寫入日誌檔案 'console': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': True }, # app engine 模組的日誌處理 並輸出到控制檯 'engine': { 'handlers': ['default', 'error', 'console'], 'level': 'DEBUG', 'propagate': True }, # 日誌寫入上面handlers定義的error所指向的log日誌檔案 並輸出到控制檯 'app01': { 'handlers': ['error', 'console'], 'level': 'ERROR', 'propagate': True }, # 日誌同時寫入上面handlers定義的default和error所指向的log日誌檔案 'app02': { 'handlers': ['default', 'error'], 'level': 'ERROR', 'propagate': True }, } }
在呼叫的地方
import logging
logger = logging.getLogger("app01")