2014-03-30 6 views
0

저는 파이썬 2.7과 pyinstaller를 사용하여 프로그램을 만들고 있습니다. 내 프로그램은 "인쇄"를 사용하여 프로그램의 현재 진행 상황을 표시합니다. 내가 원하는 것은 프로그램이 오류 발생시 오류 로그를 작성하여 화면에 인쇄 된 다양한 명령문을 표시하여 진행 상황을 볼 수 있도록하는 것입니다.로그인에있어 파이썬 오류 발생

import os 
os.chdir("C:") 
logname="Error 30032014 1832" 

def subroutine(): 
    print "Subroutine started" 
    print "Stage1 is complete" 
    print "Stage2 is complete" 
    a=1 
    b=0 
    c=a/b 
subroutine() 

이 결과 :

Subroutine started 
Stage1 is complete 
Stage2 is complete 

Traceback (most recent call last): 
File "C:/Users/Joseph/Desktop/a.py", line 8, in <module> 
subroutine() 
File "C:/Users/Joseph/Desktop/a.py", line 7, in subroutine 
c=a/b 
ZeroDivisionError: integer division or modulo by zero   

내가 이름 LOGNAME과 TEXTFILE을 원하는 (또는 이름이 날짜를 자동으로 생성 할 수있는 경우 아래의 zerodivisionerror을 야기하는 간단한 프로그램입니다 시간 등)를 표시하여 오류를 검사 할 수 있습니다.

+0

[로깅 패키지] (https://docs.python.org/2/library/logging.html)를보십시오. – Thomas

답변

1

파이썬에는 로깅 기능이 내장되어있어 로깅에 사용해야합니다. 당신이 당신의 print 문이 로그 파일에 인쇄 할 경우

import logging 
logging.warning('Watch out!') # will print a message to the console 
logging.info('I told you so') # will not print anything 
0

:의 사용 방법에 https://docs.python.org/2/library/logging.html 여기

이 문서의 예입니다 : 여기

로깅 라이브러리의 문서에 대한 링크입니다 당신이 sys.stderr과 같은 작업을 수행 할 수 있습니다

import sys 
stdout = sys.stdout #save the original stdout stream 
log_file = open("C:/logfile.log", 'w') 
sys.stdout = log_file 
print "This happened" #goes to the log file 
print "And that too!" 

: 당신은 당신의 로그 파일에 출력 스트림을 리디렉션 할 수 있습니다 예외를 쓰기 가능으로 재지 정하십시오. 그러나 물론 logging이 그 목적에 더 적합합니다.