django 專案日誌記錄設定

梅山學子發表於2020-10-31

 settings.py

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'
        },
    },
    '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': LOG_CLASS,
            'formatter': 'db',
            'filename': os.path.join(LOGGING_DIR, 'django_db.log'),
        }
    },
    '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---')

 

相關文章