파이썬에서 작성중인 로그는 일시적으로 파일로 저장되어 로그 데이터베이스로 처리됩니다. 그들은 로그를 처리하는 방법을 지시하기 위해 파이프로 구분 된 형식을 취하지 만 logging.exception()은 너무 많은 필드와 너무 많은 개행을 추가하여 표준을 위반하고 있습니다.파이썬 로깅에서 예외 스택 트레이를 포맷 할 수 있습니까?
import logging
logging.basicConfig(filename='output.txt',
format='%(asctime)s|%(levelname)s|%(message)s|',
datefmt='%m/%d/%Y %I:%M:%S %p',
level=logging.DEBUG)
logging.info('Sample message')
try:
x = 1/0
except ZeroDivisionError as e:
logging.exception('ZeroDivisionError: {0}'.format(e))
# output.txt
01/27/2015 02:09:01 PM|INFO|Sample message|
01/27/2015 02:09:01 PM|ERROR|ZeroDivisionError: integer division or modulo by zero|
Traceback (most recent call last):
File "C:\Users\matr06586\Desktop\ETLstage\Python\blahblah.py", line 90, in <module>
x = 1/0
ZeroDivisionError: integer division or modulo by zero
어떻게 공백과 줄 바꿈과 함께 할 수있는 내가 가장 핸들 또는 형식 역 추적?이 메시지는 logging.exception()의 일부이며 소포이지만 예외 인스턴스를 문서화하려고 시도 할 때 기능을 우회하는 것이 이상하게 느껴집니다. 내 추적 기록을 기록하고 포맷하는 방법은 무엇입니까? 추적을 무시해야합니까?
감사합니다.
traceback.extract_tb(traceback[, limit])
돌아 한계까지의 목록 "사전 :
수행해야 할 작업 또는 수행 방법을 묻는 중입니까? 로그 파일에 오류 메시지의 형식을 지정하는 방법은 사용자가 결정합니다. 당신이 * 그 (것)들을 어떻게 보이게하고 싶습니까? – BrenBarn
삭제 해 주셔서 감사합니다. 이상적으로는 추적 된 메시지의 나머지 부분과 동일한 줄에 다른 파이프 구분 된 특성으로 추적을 포함 할 수 있습니다. – twoxmachine