2017-12-24 5 views
1

저는 Jupyter Notebook을 사용하여 파이썬을 개발하고 있습니다. 이것은 로깅 오류에서의 첫 번째 찌르기이며 내 오류 파일에 오류가 기록되지 않는 문제가 있습니다.Python 로깅 오류 출력

내가 사용하고 있습니다 :

import logging 
logger = logging.getLogger('error') 
logger.propagate = False 
hdlr = logging.FileHandler("error.log") 
formatter = logging.Formatter('%(asctime)s %(message)s') 
hdlr.setFormatter(formatter) 
logger.addHandler(hdlr) 
logger.setLevel(logging.DEBUG) 

로거를 만들 수 있습니다. 내 데이터베이스에 존재하지 않는 컬럼을 사용하여 (테스트) 목적에 호출되는 블록을 제외하고

그때/시도를 사용하고 있습니다 :

try: 
    some_bad_call_to_the_database('start',group_id) 
except Exception as e: 
    logger.exception("an error I would like to log") 
    print traceback.format_exc(limit=1) 

및 예외라고한다 내 노트북에서 내 출력에서 ​​볼 수 있습니다 :

Traceback (most recent call last): 
File "<ipython-input-10-ef8532b8e6e0>", line 19, in <module> 
some_bad_call_to_the_database('start',group_id) 
InternalError: (1054, u"Unknown column 'start_times' in 'field list'") 

그러나 error.log에 기록되지 않습니다. 어떤 생각이라도 감사 할 것입니다.

답변

1

시도 : 자세한 내용은

except Exception as e: 
    excep = logger.info("an error I would like to log") 

이 문서 https://docs.python.org/2/library/logging.html

좋은 하루 되세요에서 찾아보세요!

+0

그랬어! PHP에서 왔기 때문에 출력에 영향을 미치는 로깅 수준에 익숙해졌습니다. – Eric

1

logger.exception 대신에 루트 로거에 위임 한 logging.exception을 사용하고 있습니다 (error.log에 작성).

+0

logger.exception을 사용하도록 코드를 업데이트했으며 불행히도 출력이 없습니다. – Eric

+0

데이터베이스 호출로 버그를 재현 할 수 없으므로 수동으로 "ValueError"를 발생시키면서 시도해 보았습니다. –