天天看點

django為不同應用添加日志功能

1.setting配置

1.setting配置
if os.path.exists(os.path.join(BASE_DIR, 'logs')) is False:
    os.mkdir(os.path.join(BASE_DIR, 'logs'))
# logs目錄絕對路徑
LOGS_ROOT = os.path.join(BASE_DIR, 'logs')
# 預設情況下,LOGGING設定與Django的預設logging配置進行合并

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': '%(asctime)s %(levelname)s %(pathname)s %(filename)s %(funcName)s %(lineno)d %(message)s', #自定義輸出格式
        },
        'simple': {
            'format': '%(asctime)s {levelname} {message}',
        },
    },
    'filters': {
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'default'
        },
        'oa_handler': { #可為每個app設定一個handler
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',#輸出到檔案
            'encoding':"utf-8",
            'filename': os.path.join(LOGS_ROOT,'oa_truck.log'),#日志檔案路徑+檔案名
            'formatter': 'default'
        }
    },
    'loggers': {
        'app_oa_truck': {  #可為每個app設定一個logger
            'handlers': ['oa_handler'],#標明handler進行處理
            'level': 'INFO',
            'propagate': False,
        }
    }
}










           

2.在需要引入日志的views頁面

import logging 
log_truck = logging.getLogger("app_oa_truck") 
log_truck.error(error)
           

或者在utils建一個log.py檔案,将所有的log_app名命名,并且放在該py檔案中,需要對應應用的log時,直接在需要的py檔案中導入該log

例如:

utils -->log.py:

import logging 
log_truck = logging.getLogger("app_oa_truck")
           

truck -->views.py

from utils.log import log_truck 
#再使用log_truck
           

繼續閱讀