Logger.info() 파일 생성이 되지 않을 때
by CoriLog 파일에 정보를 기록하다, 관련 파일에 변경을 가했을 때 이후 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)
이후부터는 기존처럼 정상 작동할 거다 !
'CS > Python' 카테고리의 다른 글
다른 경로의 파일 from .. import 에서 잡아주기 (0) | 2024.10.24 |
---|---|
API Key 유출 방지를 위한 2가지 방법 (Python) (0) | 2024.07.29 |
[자료구조] 연결리스트와 트리 구조 (0) | 2021.11.06 |
[자료구조] 최단 경로 (0) | 2021.11.01 |
[자료구조] 동적계획법 (0) | 2021.10.24 |
블로그의 정보
코딩하는 오리
Cori