logging을 사용하여 stdout, stderr을 파일에 저장하는 Python 예제Python/Python 예제 코드2022. 11. 14. 21:05
Table of Contents
반응형
logging을 사용시 출력하라고 지정한 내용외에 표준 출력이나 표준 에러로 화면에 보여지는 내용들이 파일에 저장되었으면 하는 아쉬움이 있었습니다.
찾아보니 해결한 코드가 있네요. 하지만 파일에 저장이 되는 반면 화면에는 출력이 보이지 않는 단점이 있습니다.
https://stackoverflow.com/a/39215961/19664020
2022. 11. 14 최초작성
import logging import sys class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. """ def __init__(self, logger, level): self.logger = logger self.level = level self.linebuf = '' def write(self, buf): for line in buf.rstrip().splitlines(): self.logger.log(self.level, line.rstrip()) def flush(self): pass logging.basicConfig( level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(name)s:%(message)s', filename='out.log', filemode='a' ) log = logging.getLogger() sys.stdout = StreamToLogger(log,logging.INFO) sys.stderr = StreamToLogger(log,logging.ERROR) print('Test to standard out') raise Exception('Test to standard error') |
반응형
'Python > Python 예제 코드' 카테고리의 다른 글
리스트를 정해진 개수로 분할하여 딕셔너리에 저장하는 Python 예제 (0) | 2023.01.21 |
---|---|
Python에서 getch 함수 사용하기 (0) | 2022.12.14 |
Python - 조건 if문이 포함된 한 줄 return 문 사용하기 (0) | 2022.10.27 |
Python 변수 이름에 일련번호를 부여하여 생성하는 방법 (0) | 2022.10.24 |
lambda와 map을 사용하여 list 원소에 똑같은 문자열을 추가하는 Python 예제 (0) | 2022.10.23 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!