मैंने समय के साथ स्क्रिप्ट का एक गुच्छा लिखा है और मैं DRY कोड रखने के लिए स्क्रिप्ट को दोबारा करने की प्रक्रिया में हूं। मैं वर्तमान में विभिन्न लिपियों में इन पंक्तियों के साथ कुछ का उपयोग कर रहा: हर लिपि में इस दोहरा (यानी "मॉड्यूल") के बजायपायथन: विभिन्न मॉड्यूल से एक ही फ़ाइल में लॉग इन करने का सही तरीका
if __name__ == '__main__':
logger = logging.getLogger('dbinit')
hdlr = logging.FileHandler('/var/logs/tmp/foo.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.WARNING)
, मैं इस लकड़हारा initialisation एक कहीं किया और विभिन्न द्वारा पहुँचा करना चाहते हैं स्क्रिप्ट (हम्म, शायद एक सिंगलटन कक्षा में लपेटें?)।
मुझे लगता है कि (यानी एक कोर मॉड्यूल में लकड़हारा initialisation कोड डाल) नहीं कर सकते हैं, तो मुझे लगता है कि logging.FileHandler() कॉल में एक ही लॉग फ़ाइल नाम का उपयोग करके, विभिन्न लिपियों लिखेंगे एक ही फाइल में।
क्या यह धारणा सही है?
अंतिम लेकिन कम से कम नहीं, इस समस्या को हल करने के लिए सबसे अच्छा अभ्यास (यानी पायथनिक) तरीका क्या है?
संबंधित: [कई मॉड्यूल से अजगर लॉगिंग मुद्दों] (http://stackoverflow.com/questions/7341538/) –
संबंधित: [पायथन: लॉगिंग मॉड्यूल - वैश्विक रूप से] (http://stackoverflow.com/questions/7621897/) –