importloggingdefabout_handler():# Logger 인스턴스 생성 및 설정
logger_name="about_handler"logger=logging.getLogger(logger_name)logger.setLevel(logging.INFO)# StreamHandler 인스턴스 생성
stream_handler=logging.StreamHandler()# 핸들러의 종류를 정할 수 있다.
stream_handler.setLevel(level=logging.INFO)# 핸들러가 처리할 최소 로그 레벨을 설정한다.
formatter=logging.Formatter()# Formatter 생성 : 추후에 다룸
stream_handler.setFormatter(formatter)# Formatter 할당
# FileHandler 인스턴스 생성
file_handler=logging.FileHandler(filename="logs/handler_log.log",mode="a",encoding="utf-8")file_handler.setLevel(logging.ERROR)# 핸들러마다 각기 다른 로그 레벨을 설정할 수 있다.
new_formatter=logging.Formatter()# Formatter 생성 : 추후에 다룸
file_handler.setFormatter(new_formatter)# 핸들러마다 각기 다른 포매터를 설정할 수 있다.
# addHandler : Logger 에 Handler 할당
# 하나의 Logger 에 다수 개의 Handler 를 할당할 수 있다.
logger.addHandler(stream_handler)logger.addHandler(file_handler)# 로그 레코드 생성 및 핸들러에 전달
logger.info("info message")logger.error("error message")if__name__=="__main__":about_handler()
Handler 의 메서드
메서드
설명
setLevel()
핸들러가 처리할 가장 최소릐 로그 레벨을 설정한다.
setFormatter()
핸들러에 인입된 로그 레코드를 로그 메시지로 변환할 포매터를 설정한다.
addFilter()
핸들러에 필터를 추가한다.
removeFilter()
핸들러에 필터를 제거한다.
Handler 생성 및 사용 흐름
1개 이상의 로거가 생성되어있다는 전제 하에
No
흐름
설명
1
핸들러 생성
로거가 만든 로그 레코드를 전송하는 핸들러를 생성하고, 로그레벨 등 관련 설정을 수행한다.
2
포매터 생성
로그 레코드를 지정 형식의 로그 메시지로 만드는 포매터를 생성하고, 관련 설정을 수행한다.
댓글 남기기