210711 TIL

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로 설정해놓고 사용 중.

그 후 각 레벨에 따라 프로퍼티를 설정해주면 동시에 로그와 메세지가 로그 파일에 적히면서 터미널에 출력이 된다. 로그를 남기고 싶다면 해당 스크립트를 임포트해서 사용하면 편해서 미리 만들어 두었다.

끝.

댓글을 작성해보세요.

채널톡 아이콘