파이썬에서 로깅(logging)은 애플리케이션의 실행 상태에 대한 정보를 기록하는 중요한 기능입니다. logging 모듈을 사용하면 콘솔, 파일, 웹 서버 등 다양한 대상에 로그를 출력할 수 있습니다. 사용자 정의 로깅 클래스를 만드는 기본적인 예시입니다.
먼저, 파이썬의 logging 모듈을 사용하여 로거(logger), 핸들러(handler), 포매터(formatter)를 설정하는 사용자 정의 클래스를 만듭니다. 이 클래스는 로깅을 쉽게 설정하고 사용할 수 있도록 도와줍니다.
import logging
class MyLogger:
def __init__(self, name, level=logging.DEBUG, file_name='app.log'):
# 로거 생성
self.logger = logging.getLogger(name)
self.logger.setLevel(level) # 로그 레벨 설정
# 파일 핸들러 생성 및 설정
file_handler = logging.FileHandler(file_name)
file_handler.setLevel(level)
# 콘솔 핸들러 생성 및 설정
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
# 로그 포맷 설정
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 핸들러를 로거에 추가
self.logger.addHandler(file_handler)
self.logger.addHandler(console_handler)
def get_logger(self):
"""
구성된 로거 객체 반환
"""
return self.logger
이 클래스를 사용하여 로깅을 설정하고 메시지를 기록하는 방법은 다음과 같습니다:
# MyLogger 인스턴스 생성
my_logger = MyLogger(name='MyAppLogger', level=logging.INFO).get_logger()
# 로깅 메시지 기록
my_logger.debug('디버그 메시지입니다.')
my_logger.info('정보 메시지입니다.')
my_logger.warning('경고 메시지입니다.')
my_logger.error('에러 메시지입니다.')
my_logger.critical('치명적인 에러 메시지입니다.')
이 코드는 MyAppLogger라는 이름의 로거를 생성하고, 로그 메시지를 파일(app.log)과 콘솔에 출력합니다. 로그 메시지에는 발생 시간, 로거 이름, 로그 레벨, 메시지가 포함됩니다.
로깅 레벨은 다음과 같은 순서로 정의됩니다: DEBUG < INFO < WARNING < ERROR < CRITICAL. level 파라미터를 통해 설정한 레벨 이상의 메시지만 출력됩니다. 위 예시에서는 level=logging.INFO로 설정했기 때문에, debug 메시지는 출력되지 않습니다.
'python > logging' 카테고리의 다른 글
Custom Logger 만들기 2 (일자별로 log 파일 생성) (0) | 2024.03.29 |
---|---|
logging 설정하는 방법 (0) | 2024.03.14 |