मेरे पास एक ऐसा एप्लिकेशन है जो बहु-थ्रेडिंग का उपयोग करता है और सर्वर पर पृष्ठभूमि में चलाया जाता है। सर्वर पर लॉग ऑन किए बिना एप्लिकेशन की निगरानी करने के लिए, मैंने कुछ HTTP अंतराल और रिपोर्ट स्थिति का जवाब देने के लिए Bottle शामिल करने का निर्णय लिया, रिमोट शटडाउन आदि का प्रदर्शन किया।एक चर के लिए पायथन रोलिंग लॉग
मैं भी एक रास्ता जोड़ना चाहता था लॉगफाइल से परामर्श करने के लिए। मैं FileHandler
का उपयोग करके लॉग इन कर सकता हूं और यूआरएल अनुरोधित होने पर गंतव्य फ़ाइल भेज सकता हूं (उदा। /log
)।
हालांकि, मैं सोच रहा था कि RotatingFileHandler
जैसे कुछ को कार्यान्वित करना संभव होगा, लेकिन फ़ाइल में लॉगिंग करने के बजाय, एक चर (जैसे BytesIO
) पर लॉग इन करना। इस तरह, मैं लॉग को नवीनतम जानकारी तक सीमित कर सकता हूं, जबकि साथ ही इसे एक अलग फ़ाइल डाउनलोड के बजाय ब्राउज़र में पाठ के रूप में वापस करने में सक्षम होना चाहिए।
RotatingFileHandler
को एक फ़ाइल नाम की आवश्यकता है, इसलिए यह BytesIO
स्ट्रीम पास करने का विकल्प नहीं है। एक चर के लिए लॉगिंग पूरी तरह से करने योग्य है (उदा। Capturing Python Log Output In A Variable), लेकिन मैं रोलिंग भाग को कैसे करना है, इस पर थोड़ा सा स्टंप हूं।
कोई भी विचार, संकेत, सुझावों की बहुत सराहना की जाएगी।
आप एक 'collections.deque' वस्तु का इस्तेमाल कर सकता लॉग आउटपुट को कैप्चर करने के लिए? आप डेक के लिए अधिकतम लंबाई निर्धारित करेंगे, और एक बार यह इस लंबाई तक पहुंचने के बाद पुराने लॉग आइटम शुरू हो जाएंगे क्योंकि आप नए लॉग आइटम जोड़ते हैं। –