파이썬 로그 파일이 안 생기는 이유와 logging 설정 점검법

자동화가 끝났는데 로그 파일이 보이지 않으면, 저는 먼저 경로를 바꾸기보다 logging 설정이 언제 적용됐는지 살펴봐요. 파일 자체가 없는 상황과 파일은 있는데 INFO·DEBUG만 비어 있는 상황은 원인이 다를 수 있어요. 우선 basicConfig()가 첫 로그 호출보다 앞서 실행됐는지, 파일 대상과 기록 레벨이 함께 정해졌는지 확인해 보세요.

파일이 만들어지지 않았다면 설정 시점부터 봐요

예를 들어 배치 스크립트에 로그 호출은 있는데 파일이 생기지 않는다면, 설정을 실행 흐름 앞부분에 두었는지 먼저 확인하는 편이 좋습니다. Python 공식 문서도 basicConfig()를 logger 메서드 호출 전에 적용하도록 안내해요.

import logging

logging.basicConfig(
    filename="automation.log",
    encoding="utf-8",
    level=logging.INFO,
    format="%(asctime)s %(levelname)s %(name)s - %(message)s",
)

logger = logging.getLogger(__name__)
logger.info("자동화 작업을 시작합니다")

이 코드는 파일 이름과 인코딩, 기록할 최소 레벨을 한 번에 지정해요. 로그를 호출한 뒤에 설정을 붙였다면 이미 먼저 만들어진 기본 설정이 적용됐을 수 있으니, 설정 줄과 첫 logger 호출의 순서를 나란히 확인해 보세요.

basicConfig()를 불렀는데도 바뀌지 않을 수 있어요

다른 모듈이나 실행 환경이 먼저 root logger에 handler를 붙였다면, 이후 basicConfig()는 기본적으로 기존 구성을 그대로 둡니다. 호출 자체가 실행됐는데 파일이 만들어지지 않는다면 이 조건을 의심해 볼 수 있어요.

force=True는 이미 붙은 handler를 제거하고 새 설정을 적용하는 선택지예요. 다만 라이브러리나 실행 환경이 마련한 로그 경로까지 바꿀 수 있으니, 무조건 추가하기보다 먼저 누가 logging을 구성하는지 확인하는 편이 안전합니다.

파일은 있는데 INFO만 비어 있다면 레벨을 확인해요

Python logging의 기본 레벨은 WARNING이라 INFO와 DEBUG는 별도 설정이 없으면 기록되지 않을 수 있어요. 그래서 파일은 만들어졌는데 시작·진행 메시지만 없다면, 작업 코드보다 logger와 handler의 유효 레벨을 먼저 살펴보세요.

root logger의 설정만 보지 말고 파일 handler에도 별도 level이 지정돼 있는지 함께 확인해야 합니다. 한쪽에서 허용한 메시지도 다른 쪽의 기준이 더 높으면 파일에 도달하지 않을 수 있어요.

오래 도는 작업은 파일이 커지는 속도도 생각해요

작은 스크립트라면 basicConfig()나 FileHandler로 충분할 수 있습니다. 실행이 길고 로그가 계속 쌓이는 자동화라면 파일을 언제 나눌지 정해야 해요.

용량으로 나누고 싶다면 RotatingFileHandler의 maxBytes와 backupCount를 살펴볼 수 있고, 날짜나 시간 간격이 기준이라면 TimedRotatingFileHandler가 맞을 수 있어요. 어떤 쪽이든 보관 기간과 디스크 여유를 먼저 정하면 handler 선택이 훨씬 쉬워집니다.

저는 이렇게 원인을 나눠 봐요

파일이 전혀 없다면 설정 대상과 호출 순서를, 파일은 있지만 일부 메시지만 없다면 logger·handler 레벨을 먼저 확인해 보세요. root handler가 이미 존재하는 실행 환경이라면 basicConfig()가 새 설정을 덮지 않는다는 점도 함께 봐야 합니다.

파일이 다른 폴더에 만들어졌을 가능성이 남아 있다면, logging 설정과 현재 작업 폴더 문제를 분리해 확인할 수 있어요. 이 부분은 상대경로와 현재 작업 폴더 확인법에서 이어서 살펴보세요.

파일이 아예 만들어지지 않는 경우와 INFO·DEBUG만 비어 있는 경우를 나눠, logging 설정 순서와 level을 확인한 뒤 필요한 handler를 고르는 게 이 글의 중심이에요. 먼저 설정 호출 순서를 확인하면 경로 문제로 오해해 파일 위치만 바꾸는 일을 줄일 수 있어요. 기본 레벨이 WARNING이면 logger 호출이 실행돼도 INFO·DEBUG는 기록에서 빠질 수 있으니, 파일이 비어 있다고 작업 자체가 실행되지 않았다고 단정하지 마세요.

현재 작업 폴더가 원인이라면 상대경로와 현재 작업 폴더 확인법을 이어서 확인해 보세요. 다음으로는 Python 자동화 로그를 날짜나 용량 기준으로 순환하는 방법을 살펴보면 운영 보관 기준까지 정하기 수월합니다.

참고 자료

2 thoughts on “파이썬 로그 파일이 안 생기는 이유와 logging 설정 점검법”

Leave a Comment