AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Python의 내장 로깅 모듈 대신 Loguru 사용 이유

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

Python 개발자 (기초~중급 수준)

핵심 요약

  • Loguru는 Python 내장 로깅 모듈보다 커스터마이징이 용이하며, TRACE, SUCCESS 등 추가 로그 레벨 지원
  • color codingJSON 포맷 지원으로 로그 가독성 향상
  • 로그 파일 회전(rotation), 압축(compression), 보관 정책(retention) 자동화 기능 제공
  • logger.add() 함수로 로그 포맷, 레벨, 출력 경로 설정 가능

섹션별 세부 요약

1. 로깅 모듈의 한계 및 Loguru 도입

  • Python 내장 logging 모듈의 커스터마이징 한계색상 지정 불가 문제 언급
  • Loguru 도입으로 로그 출력의 직관성유연성 향상
  • pip install loguru 명령어로 설치 가능

2. 로그 레벨 및 우선순위

  • TRACE(5), SUCCESS(25)2개 추가 레벨 제공
  • 레벨 우선순위 표:

TRACE(5) < DEBUG(10) < INFO(20) < SUCCESS(25) < WARNING(30) < ERROR(40) < CRITICAL(50)

3. 로그 포맷 및 커스터마이징

  • logger.add() 함수로 시간 형식, 색상, 출력 경로 설정 가능

```python

logger.add(sys.stdout, format="{time}::{level} --- {message}", level="INFO")

```

  • HTML-like syntax로 로그 메시지 색상 지정 가능

```python

format=" {time} :: {level}--- {message}"

```

4. 로그 파일 관리 기능

  • 로그 파일 회전(rotation): 파일 크기(500MB) 또는 시간(12:00, 1주일) 기준 자동 생성
  • 보관 정책(retention): 10일 이후 자동 정리
  • 압축(compression): ZIP 형식으로 저장 가능

```python

logger.add("log_rotate.log", rotation="500 MB")

logger.add("log_retention.log", retention="10 days")

logger.add("log_retention2.log", compression="zip")

```

5. JSON 형식 및 컨텍스트 추가

  • serialize=True 옵션으로 JSON 포맷 로그 생성
  • bind() 메서드로 추가 정보(author, type 등) 로그에 포함 가능

```python

context_logger = logger.bind(author="Akhilesh", type="demo")

context_logger.info("You can pass context with logs!")

```

6. 예외 처리 및 디버깅

  • backtrace=True, diagnose=True 옵션으로 스택 트레이스변수 값 포함
  • logger.catch() 데코레이터로 예외 처리 자동화

```python

@logger.catch()

def func(a, b):

return a / b

```

결론

  • Loguru간단한 설정으로 로그 가독성, 커스터마이징, 파일 관리 기능을 극대화할 수 있어 Python 개발자에게 강력 추천
  • logger.add() 함수를 통해 로그 레벨, 형식, 출력 경로를 1줄로 설정 가능
  • TRACE, SUCCESS추가 레벨JSON/색상 포맷을 활용해 로그 기반 디버깅 및 모니터링 효율성 향상