इसके लिए तीसरे पक्ष के ढांचे की आवश्यकता होती है, जिसका नाम सेरिलोग है , लेकिन मैंने फिर भी इसे पाया है कि यह किसी स्थान पर उत्पादन के साथ एक बहुत ही सहज अनुभव हो सकता है।
आपको सबसे पहले Serilog का Trace सिंक इंस्टॉल करना होगा । एक बार स्थापित होने के बाद, आपको लकड़हारा को इस तरह स्थापित करना होगा:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(आप एक अलग न्यूनतम स्तर निर्धारित कर सकते हैं या इसे एक कॉन्फ़िगरेशन मान या सामान्य सीरिलॉग कार्यक्षमता में सेट कर सकते हैं। आप Trace
कॉन्फ़िगर करने के लिए एक विशिष्ट स्तर पर लकड़हारा भी सेट कर सकते हैं , या फिर भी आप ऐसा करना चाहते हैं।)
फिर आप सामान्य रूप से संदेश लॉग करते हैं और वे आपकी आउटपुट विंडो में दिखाई देते हैं:
Logger.Information("Did stuff!");
यह इतना बड़ा सौदा नहीं लगता है, इसलिए मुझे कुछ अतिरिक्त फायदे बताएं। मेरे लिए सबसे बड़ी बात यह थी कि मैं एक साथ आउटपुट विंडो और कंसोल दोनों में लॉग इन कर सकता था :
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
इसने मुझे इस बात की बहुत सहूलियत दी कि मैंने अपने सभी कॉल्स को डुप्लिकेट किए बिना, आउटपुट का उपभोग कैसे Console.Write
किया Debug.Write
। कोड लिखते समय, मैं अपने आउटपुट खोने के डर के बिना विजुअल स्टूडियो में अपना कमांड लाइन टूल चला सकता था। जब मैंने इसे तैनात किया था और कुछ डिबग करने की जरूरत थी (और विजुअल स्टूडियो उपलब्ध नहीं था), कंसोल आउटपुट आसानी से मेरी खपत के लिए उपलब्ध था। जब यह शेड्यूल किए गए कार्य के रूप में चल रहा हो तो वही संदेश किसी फ़ाइल (या किसी अन्य प्रकार के सिंक) में लॉग इन किया जा सकता है।
लब्बोलुआब यह है कि ऐसा करने के लिए सेरिलॉग का उपयोग करने से संदेशों को बहुत से गंतव्यों तक पहुंचाना आसान हो गया, यह सुनिश्चित करते हुए कि मैं हमेशा उत्पादन को आसानी से एक्सेस कर सकता हूं, भले ही मैंने इसे कैसे चलाया हो।
इसके लिए बहुत न्यूनतम सेट अप और कोड की भी आवश्यकता होती है।
Debug.WriteLine()