TOP

django 日志配置使用

官方文档

点击这里 

配置

日志中可以使用的变量

配置的模板

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

配置范例

from django.conf import settings

LOG_DIR = os.path.join(settings.BASE_DIR, 'logs')
os.makedirs(LOG_DIR, exist_ok=True)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'verbose': {
            # 'format': '{levelname} {asctime} {module} {process:d} {thread:d} {filename} {lineno:d} {message}',
            'format': '-------------\n'
                      'time: {asctime}\n'
                      'level: {levelname}\n'
                      'module: {module}\n'
                      'filename: {filename}\n'
                      'funcName: {funcName}\n'
                      'line: {lineno:d}\n'
                      'message: {message}\n',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {asctime} {message}',
            'style': '{',
        },
        'api': {
            'format': "-------------\n{asctime} {message}",
            'style': '{',
        },
    },
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'api_file': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'when': 'MIDNIGHT',
            'backupCount': 30,
            'filename': os.path.join(LOG_DIR, 'api.log'),
            'formatter': 'api',
        },
        'request_file': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'when': 'MIDNIGHT',
            'backupCount': 30,
            'filename': os.path.join(LOG_DIR, 'request.log'),
            'formatter': 'verbose',
        },
        'task_file': {
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'when': 'MIDNIGHT',
            'backupCount': 30,
            'filename': os.path.join(LOG_DIR, 'task.log'),
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'INFO',
            'propagate': True,
        },
        'django.server': {
            'handlers': ['console'],
            'level': 'INFO',
            'propagate': False,
        },
        'django.request': {
            'handlers': ['console'],
            'level': 'INFO',
            'propagate': False,
        },
        'my_api': {
            'handlers': ['api_file'],
            'level': 'INFO',
            'propagate': False,
        },
        'my_request': {
            'handlers': ['request_file'],
            'level': 'INFO',
            'propagate': False,
        },
        'my_task': {
            'handlers': ['task_file'],
            'level': 'INFO',
            'propagate': False,
        }
    }
}

日志级别

日志使用

# import the logging library
import logging

# Get an instance of a logger
logger = logging.getLogger(__name__)

def my_view(request, arg1, arg):
    ...
    if bad_mojo:
        # Log an error message
        logger.error('Something went wrong!')

 

posted @ 2022-07-07 14:20  羊驼之歌  阅读(279)  评论(0编辑  收藏  举报