210711 TIL
2021.07.11
python logging
import logging
def get_logger(__name__, log_file):
# make logger instance
logger = logging.getLogger(__name__)
# make formatter
formatter = logging.Formatter('[%(asctime)s][%(levelname)s|%(filename)s:%(lineno)s] >> %(message)s')
# make handler
StreamHandler = logging.StreamHandler()
fileHandler = logging.FileHandler(log_file)
# set formatter
StreamHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
# add handler to logger instance
logger.addHandler(StreamHandler)
logger.addHandler(fileHandler)
return logger
def main():
logger = get_logger(__name__, 'test.log')
logger.setLevel(level=logging.INFO)
logger.debug('test debug')
logger.info('test info')
logger.warning('test warning')
logger.error('test error')
logger.critical('test critical')
if __name__ == '__main__':
main()
파이썬을 사용하면서 로그를 남기는 프로그램을 구성했다.
main 함수에서 보이는 것과 같이 get_logger 함수를 불러와서 인자로 __name__과 로그를 저장할 파일명을 넣어주어 객체를 생성한다.
객체의 setLevel 프로퍼티를 설정해준다. 탑다운으로 순서는 critical, error, warning, info, debug인데 보통은 info정도까지로 설정해두는 듯 하다. 나도 info로 설정해놓고 사용 중.
그 후 각 레벨에 따라 프로퍼티를 설정해주면 동시에 로그와 메세지가 로그 파일에 적히면서 터미널에 출력이 된다. 로그를 남기고 싶다면 해당 스크립트를 임포트해서 사용하면 편해서 미리 만들어 두었다.
끝.
댓글을 작성해보세요.