2011-06-12 2 views

답변

46
logging.Formatter.converter = time.gmtime 

+2

그리고 이제는 공식적인 HTML 설명서도 업데이트되었습니다. 곧 3.2 및 3.3 및 몇 일 동안 2.7에 표시 될 것입니다. –

+2

[여기] (http://docs.python.org/2/library/logging.html#logging.Formatter)에 설명되어 있습니다. 포맷터를 핸들러에 연결하려면 먼저 ** formatter = logging.Formatter (fmt) **로 포맷터를 작성한 다음 ** formatter.converter = time.gmtime **과 ** myHandler를 차례로 수행해야합니다. setFormatter (formatter) ** –

+1

@VinaySajip 로깅 dictConfig에서 어떻게 설정합니까? 로깅 부분을 구성하기 위해 logging.dictConfig를 사용하는 Django를 사용합니다. 감사합니다 – Michael

5

그냥 logging.Formatter.converter = time.gmtime 설정하면 파이썬 2.5 날 위해 비효율적이다.

그래서 나는 설정으로 자식 클래스를 생성하고, logging.Formatter 대신 것을 사용

class UTCFormatter(logging.Formatter): 
    converter = time.gmtime 
+0

(누군가를 돕기 위해 2.5에서 나를 위해 일했습니다.) –

+0

나를 위해 파이썬 2.7에서 일했습니다. 조금 까다 롭기 때문에 인스턴스화를위한 YAML 구문을 보여주는 제안 된 편집을 추가했습니다. (첫 편집에서 제안한 것처럼'__init __()'메서드가 필요하지 않습니다.) – evadeflow

0

나는이 답변 모두 문제를 했어. 그래서 전체 스크립트의 글로벌 표준 시간대를 변경했습니다.

os.environ['TZ'] = 'Europe/London' 
time.tzset() 
+10

런던은 여름에 GMT 시간이 아니므로 조심하십시오. –

+0

이 답변은 Linux에서 Python 2.7을 사용하여 작동하는 것으로 나타났습니다. 리눅스 tzselect 명령을 사용하여 검사 할 가치가있는 것은 사용자가 지정한 것은 시스템의 유효한 시간대이며 'date'명령으로 Python 외부에서 테스트하는 것입니다. Django는이 설정을 처리하는 것처럼 보이지만 비 장고 파이썬 스크립트에서 파이썬 로깅을 할 때 잘못된 시간대를 얻게됩니다. – RichVel

+1

올바르지 않습니다! 런던의 시간대는 UTC가 될 수 있습니다. – Federico

관련 문제