본문으로 바로가기

django logging 설정

category Python 2019. 12. 16. 17:50

settings.py 에 추가

# 로깅
# logger.debug()
# logger.info()
# logger.warning()
# logger.error()
# logger.critical()
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    # 포맷터 (텍스트의 포맷 형식 정의, 여러 포맷 정의 가능)
    'formatters': {
        'format1': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s',
            'datefmt': "%Y-%m-%d %H:%M:%S"
        },
        'format2': {
            'format': '%(levelname)s %(message)s'
        },
    },
    # 핸들러 (로그 레코드로 무슨 작업을 할 것인지 정의, 여러 핸들러 정의 가능)
    'handlers': {
        # 로그 파일을 만들어 텍스트로 로그레코드 저장
        'file': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'files/log/logfile.log'),
            'encoding': 'UTF-8',
            'maxBytes': 1024 * 1024 * 5,  # 5 MB
            'backupCount': 5,
            'formatter': 'format1',
        },
        # 콘솔(터미널)에 출력
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'format2',
        }
    },
    'loggers': {
        # 로거 종류
        'django': {
            'handlers': ['file'],
            'propagate': True,
            'level': 'INFO',
        },
        'django.request': {
            'handlers':['file'],
            'propagate': True,
            'level':'INFO',
        },
        # 사용자 APP 지정
        'account': {
            'handlers': ['file'],
            'propagate': True,
            'level': 'DEBUG',
        },
    },
}

 

APP에서 사용

 

views.py

import logging
logger = logging.getLogger(__name__)

logger.info('로그내용')