파이썬 설정 파일을 이용한 동적 로그 레벨 변경

로깅은 소프트웨어 디버깅 및 모니터링에 필수적인 요소입니다. 파이썬에서는 로깅을 쉽게 관리하기 위해 logging 모듈을 사용할 수 있습니다. 이 모듈은 로그 레벨을 설정하여 원하는 수준의 로그를 출력할 수 있도록 도와줍니다. 이번 블로그에서는 파이썬 설정 파일을 이용하여 동적으로 로그 레벨을 변경하는 방법에 대해 알아보겠습니다.

logging 모듈의 기본 설정

파이썬의 logging 모듈은 기본적으로 WARNING 레벨 이상의 로그를 출력합니다. 로그 레벨은 다음과 같이 설정할 수 있습니다.

파이썬 설정 파일 생성

먼저, 파이썬 설정 파일을 생성해야 합니다. 설정 파일은 ini 형식으로 작성되며, 로그 설정과 관련된 정보를 담고 있습니다. 아래는 예제 설정 파일의 내용입니다.

[loggers]
keys=root,sampleLogger

[handlers]
keys=consoleHandler

[formatters]
keys=sampleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_sampleLogger]
level=DEBUG
handlers=
qualname=sampleLogger
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=sampleFormatter
args=(sys.stdout,)

[formatter_sampleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

설정 파일 로드 및 로그 레벨 변경

파이썬에서는 logging.config 모듈을 사용하여 설정 파일을 로드하고 로그 레벨을 변경할 수 있습니다. 다음 예제 코드는 설정 파일을 로드하고 로그 레벨을 DEBUG로 변경하는 방법을 보여줍니다.

import logging.config

# 설정 파일 위치 지정
config_file = '/path/to/logging.conf'

# 설정 파일 로드
logging.config.fileConfig(config_file)

# SampleLogger 인스턴스 생성
logger = logging.getLogger('sampleLogger')

# 로그 레벨 변경
logger.setLevel(logging.DEBUG)

위의 예제 코드에서는 logging.config.fileConfig() 함수를 사용하여 설정 파일을 로드하고, logging.getLogger() 함수를 사용하여 로거 인스턴스를 생성합니다. 그 후, setLevel() 메서드를 사용하여 로그 레벨을 변경합니다.

이제 동적으로 설정 파일을 로드하고 로그 레벨을 변경하여 원하는 로그를 출력할 수 있습니다.

마무리

이번 블로그에서는 파이썬 설정 파일을 이용하여 동적으로 로그 레벨을 변경하는 방법에 대해 알아보았습니다. 로그 레벨을 동적으로 변경하면 애플리케이션을 실행 중에 필요한 로그만 출력할 수 있어 디버깅 및 모니터링이 용이해집니다. 설정 파일을 이용하면 로그 레벨 변경을 쉽게 관리할 수 있으므로, 이를 활용하여 더 효율적인 로깅을 구현해보세요.

참고 자료