天天看点

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
           

继续阅读