모듈별 로거 사용하기
로거를 만들어주는 함수를 따로 작성한다
def get_logger(name, logfile='/dev/null', level=0, stream=False):
logger = logging.getLogger(name)
logger.setLevel(level)
formatter = logging.Formatter('%(asctime)s %(levelname)-5s %(lineno)4s:%(filename)-20s - %(message)s')
# file handler
file_handler = logging.FileHandler(logfile)
file_handler.setLevel(level)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# stream handler
if stream:
stream_handler = logging.StreamHandler()
stream_handler.setLevel(level)
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
# binding
return logger
각 모듈의 상단에서 아래와 같이 로거를 생성해 사용한다.
logger = get_logger(__name__)