장고 시스템에서 로그를 세팅하고 쌓는 방법이다.
1. settings.py 에 LOGGING 을 아래와 같이 설정한다.
from datetime import datetime
cdate = datetime.now().strftime("%Y%m%d")
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'format_basic': {
'()': 'django.utils.log.ServerFormatter',
'format': '[{asctime}][{levelname}][{name}] - {message}',
'datefmt' : '%y.%m.%d %H:%M:%S',
'style': '{',
},
},
'handlers': {
'file1': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': BASE_DIR / f'logs/django_{cdate}.log',
'formatter': 'format_basic',
},
'file2': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': BASE_DIR / f'logs/user_log_{cdate}.log',
'formatter': 'format_basic',
},
},
'loggers': {
'django': {
'handlers': ['file1'],
'level': 'DEBUG',
},
'user_log': {
'handlers': ['file2'],
'level': 'DEBUG',
},
}
}
loggers 의 django 는 django 프레임워크에서 발생하는 로그를 쌓아주며 user_log는 사용자가 따로 로그를 쌓기위해 만들었다. 파일명은 뒤에 날짜정보가 쌓여 일별로 로그가 쌓이도록 하였다.
formatters 정보
. server_time : 서버시간 (18/Jun/2024 09:47:37,676)
. asctime : 현재시간 (18/Jun/2024 09:47:37,676)
. levelname : 로그레벨 (debug, info, warning, error, critical)
. name : loggers name
. message : 출력 내용
. datefmt 를 사용하여 시간을 사용자가 원하는 포맷으로 변경했다.
2. 폴더를 생성한다.
루트폴더 아래 logs 폴더를 생성하며 리눅스 기준으로 폴더권한을 설정해줘야 로그파일을 생성한다
3. 소스에서 로그 쌓기
import logging
logger = logging.getLogger('user_log')
logger.info('info log test')
logger.debug("debug log test")
/logs 폴더에 user_log_YYYYmmdd.log 형식으로 로그가 쌓인다.
'Django' 카테고리의 다른 글
*.js 파일 저장 및 사용하기 - django (0) | 2024.07.04 |
---|---|
crontab 설정하기 - django (0) | 2024.07.04 |
django 내장 템플릿 필터 (0) | 2024.07.04 |
django 템플릿 디렉토리 만들기 (0) | 2024.07.03 |
django admin 페이지 css 깨짐 해결법 (0) | 2024.07.03 |