django 项目日志记录设置

 在项目 settings.py 文件中增加如下配置

import os
LOGGING_DIR = '../logs'   # 日志文件夹路径


LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    # 日志格式
    'formatters': {
        'verbose': {
            'format': '%(levelname)s [%(asctime)s] %(pathname)s %(lineno)d %(funcName)s \n \t %(message)s \n',
            'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'simple': {
            'format': '%(levelname)s %(funcName)s %(message)s'
        },
        'db': {
            'format': '%(levelname)s [%(asctime)s] %(lineno)d %(funcName)s %(process)d %(thread)d \n \t %(message)s \n',
            'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'task': {
            'format': '%(levelname)s [%(asctime)s] %(pathname)s %(lineno)d %(funcName)s %(process)d %(thread)d \n \t %(message)s \n',
            'datefmt': '%Y-%m-%d %H:%M:%S'
        },
    },
    # 日志输出方式;共3种, logging.StreamHandler终端输出, logging.handlers.TimedRotatingFileHandler 时间格式文件记录(分割), logging.handlers.RotatingFileHandler 文件大小格式记录(分割)
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'debug': {
            'level': 'DEBUG',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'formatter': 'verbose',
            'filename': os.path.join(LOGGING_DIR, 'debug.log'),
            'when': 'midnight',              # 按天分割日志文件
            'backupCount': 7
        },
        'django_run': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'formatter': 'verbose',
            'filename': os.path.join(LOGGING_DIR, 'django_run.log'),
            'when': 'midnight',
            'backupCount': 7
        },
        'task': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'formatter': 'verbose',
            'filename': os.path.join(LOGGING_DIR, 'django_task.log'),
            'when': 'midnight',
            'backupCount': 7
        },
        'run_error': {
            'level': 'ERROR',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'formatter': 'verbose',
            'filename': os.path.join(LOGGING_DIR, 'django_error.log'),
            'when': 'midnight',
            'backupCount': 7
        },
        'db': {
            'level': 'ERROR',
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'db',
            'filename': os.path.join(LOGGING_DIR, 'django_db.log'),
            'maxBytes': 1024 * 1024,    # 1M大小分割
            'backupCount': 30
        }
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'django_run'],
            'level': 'INFO',
            'propagate': True
        },
        'django.request': {
            'handlers': ['console', 'run_error'],
            'level': 'INFO',
            'propagate': True
        },
        'log': {
            'handlers': ['console','debug','run_error','django_run'],
            'level': 'INFO',
            'propagate': True
        },
        'celery': {
            'handlers': ['task'],
            'level': "DEBUG",
            'propagete': True
        },

        'django.db': {
            'handlers': ['db'],
            'level': 'INFO',
            'propagete': True
        }
    }
}

在模块中使用

from logging import getLogger
logger = getLogger('log')


logger.info('---test---')

python logging模块的简单使用

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页