में वैकल्पिक लॉगर कार्यान्वित करना मैं एक फ़ंक्शन में वैकल्पिक लॉगर को कार्यान्वित करना चाहता हूं। कुछ ऐसा:कोड
def foo(arg1, arg2, arg3, logger=None):
logger = logger or (lambda *x: None)
...
self.logger.debug("The connection is lost.")
मैं लॉगजर मौजूद होने पर लॉगिंग करना चाहता हूं। अन्यथा, लॉगर की डिबगिंग कोई काम नहीं करेगी।
मूल रूप से इसे प्राप्त करने का आसान तरीका if logger
ब्लॉक में प्रत्येक डीबग कथन को घोंसला करना है, लेकिन कई डीबग स्टेटमेंट होने पर यह गन्दा लगता है।
यह सुनिश्चित नहीं है कि यह आपकी स्थिति में कैसे काम करेगा, लेकिन अगर आप लॉगजर मौजूद हैं, तो आप फ़ंक्शन के साथ फ़ंक्शन का नेतृत्व कर सकते हैं, और यदि नहीं, तो उसी नाम का लॉगर बनाएं ('लॉगर', ऐसा लगता है) और आउटपुट रूट करें 'os.devnul' करने के लिए? – RocketDonkey
@iTayb हाय, आप जो चाहते हैं उसका एक सरल वर्णन है (एक डमी लॉगर होना)। लेकिन जहां तक मुझे पता है कि पाइथन लॉगिंग आमतौर पर इस तरह से उपयोग नहीं किया जाता है। चूंकि आप लॉजिंग फ़िल्टरिंग का उपयोग लॉगर के नाम का उपयोग कर सकते हैं, तो मैं पूछ सकता हूं कि क्यों (किस स्थिति में) आपको अभी भी इस तरह के कामकाज की आवश्यकता है? – tdihp
@tdihp मैं एक कोड टुकड़ा विकसित करना चाहता हूं, जो एक प्रदान किए गए लॉगर को इसकी गतिविधि लॉग कर सकता है। यह कोड पोर्टेबल होना चाहिए। यह (उम्मीद है) कई अलग-अलग परियोजनाओं में लागू किया जाएगा, और मैं लॉगिंग पर्यावरण प्रदान नहीं कर रहा हूं। डेवलपर पर यह तय करने के लिए है कि क्या वह फ़ंक्शन की गतिविधि लॉग करना चाहता है या नहीं। मैं बस उसे विकल्प दे रहा हूँ। – iTayb