2014-10-07 4 views
11

녹음 메시지를위한 일부 로깅을 구현하려고합니다. 이상한 행동을하기 때문에 최소한의 예를 찾으려고 노력했습니다. 이것은 here입니다.Python이 로그 파일을 만들지 않습니다.

In [1]: import logging 
    ...: logging.basicConfig(filename='example.log',level=logging.DEBUG) 
    ...: logging.debug('This message should go to the log file') 
    ...: logging.info('So should this') 
    ...: logging.warning('And this, too') 
WARNING:root:And this, too 

In [2]: ls example.log 

File not found 

아무도 내가 뭘 잘못 이해하는 데 도움 수 : 난 그냥 내 통역으로이 기술 쉬운 예를 복사 할 때 당신은 여기에서 볼 수있는 파일이 생성되지 않는 이유는 무엇입니까? 감사합니다 ...

EDIT : 두 번째 입력 이후의 출력을 영어로 변경하고 불필요한 부분을 제거했습니다. 유일한 중요한 점은 파이썬이 example.log 파일을 생성하지 않는다는 것입니다.

+2

당신이 영어로 독일어에서 transelate시겠습니까? 그것은 훨씬 쉬울 것입니다. –

+1

방금 ​​원래 게시물을 편집했습니다. 거기에있는 유일한 독일어는 'example.log'파일이 존재하지 않는다는 것입니다. 이것은 제가 보여주고 자했던 것입니다. 그러나 출력물에 독일어가 있다는 것을 몰랐습니다. 죄송합니다 ... – Chris

+0

Laufwerk C의 볼륨 : hat keine bezeichnung. -> 볼륨 C : 제목 없음 | 파일을 찾을 수 없음 -> 파일을 찾을 수 없습니다. Verzeichnis von ...--> 디렉토리에서 ... –

답변

18

예기치 않은 결과가 나온 이유는 루트 로거 자체를 구성하는 Python (IPython 모양) 위에 뭔가를 사용하고 있기 때문입니다. 루트 로거 이미에 대해 구성된 핸들러 이있는 경우

, the documentation for basicConfig()에 따라이 함수는 작동하지 않습니다.

이 같은 당신이 파이썬으로 얻을 수 있습니다 :

C:\temp>python 
ActivePython 2.6.1.1 (ActiveState Software Inc.) based on 
Python 2.6.1 (r261:67515, Dec 5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on 
win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import logging 
>>> logging.basicConfig(filename='example.log', level=logging.DEBUG) 
>>> logging.debug('This message should go to the log file') 
>>> logging.info('And so should this') 
>>> logging.warning('And this, too') 
>>> ^Z 

C:\temp>type example.log 
DEBUG:root:This message should go to the log file 
INFO:root:And so should this 
WARNING:root:And this, too 
1

사용중인 운영 체제를 알려주십시오.

Cygwin을 사용하여 Windows를 사용하고 있습니까? 그렇지 않더라도 환경 변수 문제와 매우 흡사합니다. PYTHONPATH가 올바르게 설정되었는지 확인하십시오. 필자는 Python 설치 디렉토리 (아마도 C :/Python27과 같은)와 서브 폴더 'Lib', 'Lib/lib-tk'및 'DLLs'디렉토리를이 폴더 내에 포함하는 PYTHONPATH라는 시스템 변수를 제안합니다. . here을 참조하십시오.

그리고 가능성은 적습니다 ... Linux 시스템에서 이것을 실행하고 있습니까? 디렉토리에 적절한 사용 권한이 설정되어 있는지 확인하십시오. bash에서는 'ls -la'를 사용하여 권한을 표시합니다. 디렉토리에서 'chmod u + w'를 실행하십시오. 쓰기 권한이 있는지 확인하십시오.

+0

나는 Windows를 사용하고있다 ... 당신의 링크에 설명 된대로 환경 변수를 설정하려고 시도했지만 지금까지는 행운이 없다. 뭔가 내 파이썬 설치에 대해 약간 비린내 같아.Windows 명령 줄에서 파이썬을 시작한 다음'logging logging'과'logging.basicConfig()'를 입력하면 오류가 발생합니다. 파이썬은 로깅에 'basicConfig'속성이 없다고 주장합니다. 이것은 모두 정말로 이상합니다 ... – Chris

+0

cygwin을 실행 중입니까? – DanRea

+0

PYTHONPATH 환경 변수는 무엇으로 설정되어 있습니까? – DanRea

관련 문제