본문 바로가기
파이썬

파이썬 Python의 RotatingFileHandler 사용 방법

by º기록 2020. 10. 27.
반응형

다음과 같이 logging 모듈의 RotatingFileHandler 테스트 실행을 시도하고 있습니다.

import logging
from logging.handlers import RotatingFileHandler

# logging.basicConfig(filename="example.log", level=logging.DEBUG)

logger = logging.getLogger('my_logger')
handler = RotatingFileHandler("my_log.log", maxBytes=2000, backupCount=10)
logger.addHandler(handler)

for _ in range(10000):
    logger.debug("Hello, world!")

그러나 logging.basicConfig 행을 주석 처리하면 결과 my_log.log 파일에 데이터가 포함되지 않습니다.


logging.basicConfig (filename = "example.log", level = logging.DEBUG) 줄에 주석을 추가하면 예상되는 my_log.log 파일이 번호가 매겨져 있습니다. 접미사. 그러나 (상대적으로) 큰 파일 인 example.log 도 있습니다.


example.log 파일이 아닌 my_log.log 파일 만 생성하도록 로깅을 설정하려면 어떻게해야합니까?

 

해결 방법

 


lvl 보다 덜 심각한 로깅 메시지는 무시됩니다.

따라서 기본 설정으로 .debug 를 사용하면 로그에 아무것도 표시되지 않습니다.

가장 쉬운 해결책은 logger.debug 대신 logger.warning 함수를 사용하는 것입니다.

import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger('my_logger')
handler = RotatingFileHandler('my_log.log', maxBytes=2000, backupCount=10)
logger.addHandler(handler)

for _ in range(10000):
    logger.warning('Hello, world!')


import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
handler = RotatingFileHandler('my_log.log', maxBytes=2000, backupCount=10)
logger.addHandler(handler)

for _ in range(10000):
    logger.debug('Hello, world!')

 

참조 페이지 https://stackoverflow.com/questions/40088496

 

 

반응형

댓글