본문 바로가기

Django

로그 남기기

우리가 일반적으로 로컬에서 개발을 하면 오류를 콘솔에서 확인할 수 있지만, 테스트 서버나 프로덕션 서버에서 wsgi를 사용하면 로그를 콘솔처럼 확인할 수가 없다.

 

그렇기 때문에 로그파일을 남겨서 확인하는 방법을 사용해야 한다.

 

 

 

1. settings.py에 로그 설정 부분 추가

 

가장 먼저 셋팅 파일을 열어서 아래 내용을 추가한다.

 

.
.
.
LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "filters": {
        "require_debug_false": {
            "()": "django.utils.log.RequireDebugFalse",
        },
        "require_debug_true": {
            "()": "django.utils.log.RequireDebugTrue",
        },
    },
    "formatters": {
        "django.server": {
            "()": "django.utils.log.ServerFormatter",
            "format": "[{server_time}] {message}",
            "style": "{",
        },
        "standard": {"format": "%(asctime)s [%(levelname)s] %(name)s: %(message)s"},
    },
    "handlers": {
        "console": {
            "level": "INFO",
            "filters": ["require_debug_true"],
            "class": "logging.StreamHandler",
        },
        "django.server": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "django.server",
        },
        "mail_admins": {
            "level": "ERROR",
            "filters": ["require_debug_false"],
            "class": "django.utils.log.AdminEmailHandler",
        },
        "file": {
            "level": "INFO",
            "filters": ["require_debug_false"],
            "class": "logging.handlers.RotatingFileHandler",
            "filename": BASE_DIR / "logs/mysite.log",
            "maxBytes": 1024 * 1024 * 5,  # 5 MB
            "backupCount": 99,
            "formatter": "standard",
        },
    },
    "loggers": {
        "django": {
            "handlers": ["console", "mail_admins", "file"],
            "level": "INFO",
        },
        "django.server": {
            "handlers": ["django.server"],
            "level": "INFO",
            "propagate": False,
        },
    },
}
.
.
.

 

해당 내용은 info 이상의 로그를 남기겠다는 설정이다. 자세한 설정은 참고 문서를 확인

 

참고 : https://wikidocs.net/77522

 

 

2. settings.py에 debug를 false로

 

셋팅 파일에 있는 디버그 옵션을 false로 변경한다

 

.
.
.
DEBUG = False
.
.
.

 

 

3. 마지막으로 서버에 접속해서 설정파일에 설정한 filename 에 있는 경로를 생성한다.

 

위 예제는 base_dir 아래 log 폴더를 생성해서 mysite.log 라는 파일을 만드는 예제이다.

 

 

 

 

 

 

4. 로그 파일 보기

 

파일 전체 내용 보기

sudo vi project/config/log/mysite.log

 

콘솔처럼 실시간으로 보기

sudo tail -f project/config/log/mysite.log

 

 

'Django' 카테고리의 다른 글

요청 도메인, 아이피, 정보 얻기  (0) 2023.02.10
키 파일 분리하기  (0) 2023.02.10
설정 파일 분리하기  (0) 2023.02.08
서버 배포 하기  (0) 2023.02.07
AWS EC2에 github를 이용해 장고 어플리케이션 배포하기3  (1) 2023.01.25