55 django 로깅 설정 - LOGGING

55.1 환경 셋팅 파일 추가 - base.py

장고 로깅 설정을 해보겠습니다.

아래 설정은5 MB 단위로
현재파일 1개 , 백업파일 5개를 유지하면서
저장하도록 설정되어 있습니다.

file 부분의 filename 부분만 상황에 맞게 변경하시면 됩니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    # 형식정의
    'formatters': {
        'format1': {'format': '[%(asctime)s] %(levelname)s %(message)s','datefmt': "%Y-%m-%d %H:%M:%S"},
        'format2': {'format': '%(levelname)s %(message)s [%(name)s:%(lineno)s]'},
    },    
    'handlers': {
        # 파일저장
        'file': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(BASE_DIR, 'logs/pythonblog.log'),
                'encoding': 'UTF-8',
                'maxBytes': 1024 * 1024 * 5,  # 5 MB
                'backupCount': 5,
                'formatter': 'format1',
                },
        # 콘솔(터미널)에 출력
        'console': {'level': 'INFO','class': 'logging.StreamHandler','formatter': 'format2',
        },
    },
    'loggers': {
        #종류
        'django.server': {
            'handlers': ['file','console'],
            'propagate': False,
            'level': 'INFO',
        },
        'django.request': {
            'handlers':['file','console'],
            'propagate': False,
            'level':'DEBUG',
        },        
        '': {
            'level': 'DEBUG',
            'handlers': ['file'],
            'propagate': True,
        },
    },
}

55.2 환경 셋팅 파일 에러 발생 - error

장고가 실행되어 있는 상태에서
base.py 셋팅 후 에러가 발생했습니다.

1
ValueError: Unable to configure handler 'file'

이 에러는 파일 저장 경로가 잘못 설정되거나, 해당 폴더가 존재하지 않아 발생합니다.

저는 logs 폴더가 없어 생성 후 해결했습니다.

55.3 logging 사용해보기

logging를 import 후 사용하시면 됩니다.

로그가 잘 찍힙니다. ^^

1
2
3
4
5
6
7
8
9
# logger.debug()
# logger.info()
# logger.warning()
# logger.error()
# logger.critical()

import logging 

logging.info(query_set.query)