आपके कार्यक्रम का इच्छित दर्शक क्या है?
यदि आप डेस्कटॉप एप्लिकेशन बना रहे हैं और अधिकांश उपयोगकर्ताओं को लॉग पढ़ने की उम्मीद नहीं की जा सकती है, तो आपको इसे उनके लिए संभालना चाहिए। न केवल घूर्णन, बल्कि पुराने लोगों को भी हटा रहा है - आप गरीब उपयोगकर्ता की हार्ड ड्राइव को भरना नहीं चाहते हैं!
दूसरी ओर, यदि दर्शकों को यूनिक्स सिसडमिन का अनुभव होता है, तो आपको एक अलग दृष्टिकोण लेना होगा।
Sysadmins को उन सुविधाओं की आवश्यकता होगी जिन्हें आप संभवतः अनुमानित नहीं कर सकते हैं। उन्हें ईमेल द्वारा भेजें, उन्हें केवल ऐपेंड स्टोरेज के लिए लिखें, आप इसे नाम दें। इस श्रोताओं के लिए, यदि आपका लॉगिंग जितना संभव हो उतना लचीला है तो यह सबसे अच्छा है। लचीला (यूनिक्स में) का मतलब सरल है - तो बस एक फ़ाइल को लिखें और इसे मानें।
इसके अलावा, sysadmins फिर से सीखना नहीं चाहते कि कैसे फिर से लॉगिंग करना है। यहां तक कि यदि आप इस तरह की सुविधा प्रदान करना चाहते हैं, तो सुनिश्चित करें कि डिफ़ॉल्ट इस धारणा के भीतर उचित है।
अंत में। tdelaney ने एक महत्वपूर्ण बिंदु उठाया: मानक FileHandler
उस फ़ाइल पर अधिक ध्यान नहीं देता है जिस पर वह लिख रहा है। आपको WatchedFileHandler का उपयोग करना चाहिए, जो विशेष रूप से इस उद्देश्य के लिए लिखा गया था
'logrotate.d' लॉगर बंद करने और प्रत्येक लॉग ईवेंट पर फ़ाइल फ़ाइल को फिर से खोलने पर निर्भर करता है। मुझे यकीन नहीं है कि मानक पायथन फ़ाइल लॉगर ऐसा करता है या नहीं। – tdelaney
@tdelaney यह नहीं करता है, लेकिन 'लॉगिंग' के अंदर एक अच्छा विकल्प है, मेरे उत्तर – goncalopp
के नीचे देखें मैंने देखा कि आपने 'वॉचडफाइलहैंडलर' का उल्लेख करने के लिए आपको प्रश्न संपादित किया है। क्या आपका मतलब 'RotatingFileHandler' था? – goncalopp