본문 바로가기
python

파이썬 로깅을 (놀랍도록) 단순하게 만드는 Loguru 가이드

by 니나노뭉 2026. 3. 24.

Loguru는 파이썬의 기본 logging 모듈이 가진 복잡한 설정을 피하고, 오직 하나의 logger 객체만으로 강력하고 직관적인 로깅을 제공하는 라이브러리입니다.

기존 파이썬 로깅의 Handler, Formatter, Filter 설정으로 피곤하셨다면, Loguru 하나로 모든 것을 깔끔하게 해결할 수 있어 많은 개발자들에게 사랑받고 있습니다.


초기 설정 및 기본 형태

Loguru의 핵심 철학은 불필요한 보일러플레이트 코드를 없애는 것입니다. 복잡한 초기 설정 없이도 곧바로 예쁘게 색상이 입혀진 로그를 터미널에서 확인할 수 있습니다.

패키지 설치 및 기본 활용

간단하게 pip install loguru를 통해 설치한 뒤, 복잡한 인스턴스화 없이 logger를 가져와 바로 사용할 수 있습니다.

from loguru import logger

logger.debug("정말 간단하고 아름다운 로깅입니다!")

주요 특징 설명:

  • logger 원-인스턴스: Loguru에는 오직 단 하나의 logger 인스턴스만 존재하며 이를 가져와 어디서든 사용합니다.
  • 기본 동작: 사전에 설정이 되어 있기 때문에 위 코드처럼 곧바로 스탠다드 에러(stderr)에 알록달록한 로그 메시지를 띄워줍니다.

파일 기반 로그 관리 및 예외 처리 옵션

Loguru는 콘솔 출력 외에도 강력한 파일 로그 보존 옵션을 쉽게 제공합니다. 또한 코드 내에서 발생하는 예외 추적을 편리하게 해결할 수 있도록 도와줍니다.

Rotation 및 Retention 관리 (File Logging)

로그를 파일로 저장하고 싶다면, 파이썬 기본 모듈처럼 Handler를 덕지덕지 붙일 필요 없이 add() 함수를 사용하면 됩니다. 특히 로그 파일의 크기(rotation)나 보관 제한 기간(retention)을 직관적인 문자열로 훌륭하게 관리합니다.

from loguru import logger

logger.add("file_1.log", rotation="500 MB")
logger.add("file_2.log", rotation="12:00")
logger.add("file_3.log", retention="10 days")
logger.add("file_4.log", compression="zip")

옵션 설명:

  • rotation: 파일 크기가 특정 기준(예: 500 MB)을 넘거나 지정된 시간(예: 12:00)이 되면 자동으로 새로운 로그 파일을 생성하고 기존 파일을 밀어냅니다.
  • retention: 지정된 보관 기간(예: 10 days)이 지난 오래된 로그 파일들을 자동으로 정리(삭제)합니다.
  • compression: 오래된 로그 파일의 용량을 줄이기 위해 바로 압축(zip) 처리합니다.

데코레이터를 활용한 예외 캡처 (Exception Catching)

스레드(Thread) 등에서 예상치 못하게 프로그램이 멈추면서 아무런 로그 흔적을 남기지 않는 문제를 손쉽게 방지할 수 있습니다.

from loguru import logger

@logger.catch
def my_function(x, y, z):
    return 1 / (x + y + z)

my_function(0, 0, 0)

기능 설명:

  • @logger.catch: 해당 데코레이터가 감싸고 있는 함수 안에서 에러가 발생하면 놓치지 않고 자동으로 캡쳐해 лог에 남깁니다. 관련된 변수 값들이 모두 포함된 매우 상세하고 구조적인 스택 트레이스(Backtrace)를 함께 표기해주어 버그 해결에 탁월합니다.

참고

반응형