2013-05-26 10 views
16

मैं अपने लॉग में निहित जानकारी को समझने की कोशिश कर रहा हूं (लॉगिंग सेटअप डिफ़ॉल्ट फॉर्मेटर का उपयोग कर रहा है)। documentation कहता है:डिफ़ॉल्ट पायथन लॉगिंग फॉर्मेटर

रिकॉर्ड के लिए स्वरूपण करें - अगर कोई फॉर्मेटर सेट किया गया है, तो इसका उपयोग करें। अन्यथा, मॉड्यूल के लिए डिफ़ॉल्ट फॉर्मेटर का उपयोग करें।

हालांकि, मुझे यह संदर्भ वास्तव में यह बताता है कि यह डिफ़ॉल्ट प्रारूप क्या है।

धन्यवाद

+0

ऐसा लगता है कि प्रलेखन को इंगित करना चाहिए। –

उत्तर

24

डिफ़ॉल्ट प्रारूप here स्थित है जो: आप इसे कैसे अनुकूलित कर सकते हैं

BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" 

Format कोड आपको बता देंगे। यहां एक उदाहरण दिया गया है कि आप इसे कैसे अनुकूलित कर सकते हैं।

import logging 
logging.basicConfig(
    level=logging.DEBUG, 
    format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s", 
    datefmt="%H:%M:%S", stream=sys.stdout) 
logging.info("HEY") 

कौन सा में परिणाम:

[26/May/2013 06:41:40] INFO [root.<module>:1] HEY 
+0

आप लॉगिंग के BASIC_FORMAT विशेषता को कैसे जानते हैं? दस्तावेज़ में इसका उल्लेख नहीं किया गया है – iMath

+1

'लॉग' आपके उदाहरण में अपरिभाषित है। शायद 'लॉगिंग' कहा जाना चाहिए। – Ztyx

1

यह logging/__init__.py के स्रोत में है:

_defaultFormatter = Formatter() 

डिफ़ॉल्ट स्वरूपण स्ट्रिंग %(message)s देखें, जो स्रोत में है:

if fmt: 
    self._fmt = fmt 
else: 
    self._fmt = "%(message)s" 
1

डिफ़ॉल्ट हो रहा है %(levelname)s:%(name)s:%(message)s

import logging 
logging.error("Some error") 
print "fmt: " , logging.root.handlers[0].formatter._fmt 
# ERROR:root:Some error 
# fmt: %(levelname)s:%(name)s:%(message)s 
+0

स्रोत कोड में डिफ़ॉल्ट के बजाय वर्तमान स्वरूपक को कैसे जांचना है, यह एक बेहतर उत्तर आईएमओ है। – jjj

0
import logging 
print(logging.BASIC_FORMAT) 

पुराना धागा लेकिन इस क्वेरी "अजगर लॉगिंग डिफ़ॉल्ट रूप प्रारूप" के लिए मेरे गूगल खोज परिणामों में पहले आता है, तो मैंने सोचा कि मैं जोड़ने चाहिए मेरी जवाब।

कुछ टिप्पणियों के बारे में भी पूछा गया कि कोई इसे स्वयं कैसे खोज सकता है।

import logging 
print(dir(logging)) 

BASIC_FORMAT, वहाँ में है वास्तव में यह मेरे मामले में परिणाम में पहली प्रविष्टि है: यहाँ करने के लिए एक स्वाभाविक बात है।

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