를 던지고, 비정상적으로 작동하고, 내가 잘못 여기에 무슨 일이 일어나고 있는지 확인할 수 없습니다 : 그것은 실행하면 위의 코드는이 오류가 발생로거 이상한 오류
dlogger = logging.getLogger('Logger')
dlogger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=50000, backupCount=5)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
dlogger.addHandler(handler)
# ...
dlogger.info('%d successes. %d errors.', counter, error)
:
Traceback (most recent call last):
File "/usr/lib/python2.7/logging/__init__.py", line 851, in emit
msg = self.format(record)
File "/usr/lib/python2.7/logging/__init__.py", line 724, in format
return fmt.format(record)
File "/usr/lib/python2.7/logging/__init__.py", line 467, in format
s = self._fmt % record.__dict__
ValueError: unsupported format character '(' (0x28) at index 3
이 동일한 ValueError와 다른 질문은 내 경우를 설명하지 못합니다. 무슨 일 이니? 나는이 로깅 메시지가있는 스크립트를 실행 한 후
뿐만 아니라이 있지만,이 동작을 표시
8 successes. 0 errors.
8 successes. 0 errors.
8 successes. 0 errors.
2015-01-15 16:30:07,539 - INFO - 8 successes. 0 errors.
로거 한 번만 트리거 될 수 있지만, 모든 생산, 어떤 이유에서이다 이 메시지들.
추가됨 : 문자열에 메시지를 간단하게 만들었지 만 서식이없는 문자열로도 5,6 개의 반복 행을 사용하여 내 로그를 계속 스팸합니다.
올린 날짜 : 알았어요, 내가 여러 로깅을 설명 할 수 있다고 생각합니다. 디버깅하는 동안 모듈을 다시로드하고 있었는데, 이전 로딩 중 하나를 덮어 썼다 고 생각했지만 계속해서 작동하는 다중 로거를 생성했다고 생각합니다. 다시로드하십시오.
. 로거에 여러 핸들러가 있으면 해당 로거로 기록 된 메시지는 그에 연결된 모든 핸들러에 의해 처리됩니다. –
내가 설명 할 수있는 유일한 방법은 형식 문자열에서'%'와'('사이에 외모가 있거나 보이지 않는 비 ASCII 문자가있는 것입니다. 예외는 인덱스 3을 언급합니다. 그러나 인덱스 1에서.이 질문에서 형식 문자열 *을 복사하여 붙여 넣으면 다시 확인할 수 있습니까? 현재 코드의 행을 완전히 대체 하시겠습니까? –
:'# - * - encoding :'파일 상단에있는 preamble로 소스 코드 인코딩을 선언하십시오. 지금 당장 제거하십시오 - 파이썬이 파일의 비 ASCII 문자에 대해 불평 할 것입니다 –