को लक्षित करने के लिए उन्हें फ़्लश करता है मैं NLog MailTarget के माध्यम से लॉग इन करने का प्रयास कर रहा हूं। यह ठीक काम करता है, लेकिन मैं एक पूर्वनिर्धारित कोडपॉइंट तक लॉग संदेशों को बफर करने के लिए BufferedTargetWrapper
के साथ मेलटाइटल को लपेटना चाहता था, जहां मैं मैन्युअल रूप से बफर को फ्लश करना चाहता हूं और प्रीवीसली buffered लॉग संदेशों को एक मेल द्वारा भेजना चाहता हूं (जैसे परिभाषित मेल लक्ष्य)।एनएलओजी में लॉगिंग लॉग संदेश और मैन्युअल रूप से
यदि मैं FlushTimeout
या के BufferSize
को परिभाषित करता हूं तो सबकुछ अभी भी ठीक जैसा काम करता है। लेकिन यदि फ्लशटाइमआउट और बफरसाइज सेट नहीं है, तो मैं इसे काम नहीं कर सकता।
तरह अतः Force BufferingTargetWrapper to empty पर इस प्रश्न का उत्तर मैं उस तरह नहीं कुछ है:
LogManager.Configuration.AllTargets.Where(t => t != null && t is BufferingTargetWrapper).ToList().
ForEach(b => ((BufferingTargetWrapper)b).Flush(null));
लेकिन दस्तावेज और इस जवाब मेरे NLog संस्करण (2.0.0.2000) के विपरीत है। पैरामीटर के बिना कोई फ्लश विधि नहीं है, केवल असीमित लक्ष्य के लिए फ्लश विधि है।
क्या सभी लॉग इन संदेशों को लपेटा हुआ लक्ष्य (इसे मेल द्वारा भेजने के लिए) को फ़्लश करने के लिए BufferingTargetWrapper को मजबूर करने का कोई तरीका है?
अच्छा काम करता है! धन्यवाद! – dasheddot
यह बहुत अच्छा काम करता है! –