소소한 컴퓨터 이야기

Logger.info() 파일 생성이 되지 않을 때

by Cori

Log 파일에 정보를 기록하다, 관련 파일에 변경을 가했을 때 이후 Logging 작업이 원활하지 않은 경우가 종종 있다. 


보통 logger는 다음과 같이 생성한다. 

import logging 

logger = logging.getLogger('code_logger')
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler('code-result.log')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

logger를 이용해, 다음과 같이 코드 수행 결과를 'code-result.log' 파일에 기록할 수 있다. 

stt_log = {
    "start_time": segment.start,
    "end_time": segment.end, 
    "text": segment.text,
    "prob": segment.no_speech_prob,
    "seek": segment.seek, 
    "temperature": segment.temperature,
    "avg_logprob": segment.avg_logprob
}
logger.info(stt_log)

코드를 수행할때마다 로그들이 기존 파일에 이어서 작성된다. 만약 코드를 수행할때마다 새롭게 덮어쓰고 싶다면, handler 모드를 'w'로 지정해주면 된다. 

file_handler = logging.FileHandler('code-result.log', mode='w')

기존 로그 파일을 이동하거나 파일명을 변경한다면, 변경 후 로깅 파일이 제대로 생성되지 않을 수 있다. 

이는 로거가 이전 파일에 연결을 시도하고 있기 때문에 발생하는 오류이며, 기존 정보를 제거해주어야 한다.

for handler in logger.handlers[:]:
    handler.close()
    logger.removeHandler(handler)

# 새로운 파일 핸들러 설정
file_handler = logging.FileHandler('stt-result.log')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

이후부터는 기존처럼 정상 작동할 거다 !

블로그의 정보

코딩하는 오리

Cori

활동하기