2011-06-12 14 views

उत्तर

46
logging.Formatter.converter = time.gmtime 

(logging.Formatter.formatTime की docstring में दस्तावेज)

+2

और मैं अब भी आधिकारिक एचटीएमएल प्रलेखन नवीनीकृत किया है - 3.2 और 3.3 के लिए जल्द ही दिखाई देना चाहिए, और 2.7 के लिए कुछ ही दिनों में। –

+2

वर्णित [यहां] (http://docs.python.org/2/library/logging.html#logging.Formatter)। यदि आप हैंडलर को फ़ॉर्मेटर संलग्न करना चाहते हैं, तो आपको पहले ** फॉर्मेटर = लॉगिंग के साथ एक फॉर्मेटर बनाना होगा। फॉर्मेटर (एफएमटी) **, फिर ** formatter.converter = time.gmtime **, फिर ** myHandler करें। setFormatter (formatter) ** –

+1

@VinaySajip इसे लॉगिंग dictCigfig में कैसे सेट करें? मैं Django का उपयोग करता हूं जो लॉगिंग भाग को कॉन्फ़िगर करने के लिए logging.dictConfig का उपयोग करता है। धन्यवाद – 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

सावधान रहें क्योंकि लंदन गर्मी में जीएमटी समय पर नहीं है। –

+0

मैंने पाया कि यह उत्तर था जो लिनक्स पर पायथन 2.7 का उपयोग करके काम करता था। लिनक्स tzselect कमांड का उपयोग करके जांचने के लायक है जो भी आप निर्दिष्ट करते हैं वह आपके सिस्टम पर वैध टाइमज़ोन है, और 'डेट' कमांड के साथ पायथन के बाहर परीक्षण करना है। Django अपने सेटअप के लिए इस ओके को संभालने के लिए प्रतीत होता है, लेकिन गैर-Django पायथन स्क्रिप्ट से पाइथन लॉगिंग करते समय मुझे गलत टाइमज़ोन मिल रहा है। – RichVel

+1

यह गलत है! लंदन में टाइमज़ोन हमेशा के लिए यूटीसी होने की गारंटी नहीं है। – Federico

संबंधित मुद्दे