FileLoggingSession
Windows 8.1
चूंकि Windows.Foundation.Diagnostics
नाम स्थान में FileLoggingSession
और LoggingChannel
कक्षाएं, जब ऐसा करने के लिए कॉन्फ़िगर किया गया है जो फ़ाइलों के लिए लॉगिंग प्रदर्शन कर सकते हैं कर रहे हैं। आप आधिकारिक documentation में और अधिक पढ़ सकते हैं।
प्रारंभ, उपयोग और लॉग फ़ाइल को पुन: प्राप्त निम्नलिखित स्निपेट में की तरह किया जा सकता है, बेशक आप इंटरफेस बनाने की जरूरत, एकमात्र आदि यह प्रयोग करने योग्य बनाने के लिए:
// Initialization
FileLoggingSession fileLoggingSession = new FileLoggingSession("session");
var loggingChannel = new LoggingChannel("channel");
fileLoggingSession.AddLoggingChannel(loggingChannel);
// Log messages
loggingChannel.LogMessage("error message", LoggingLevel.Error);
// When file is needed
var file = await fileLoggingSession.CloseAndSaveToFileAsync();
// Do anything with file
LoggingSession
बस FileLoggingSession
फ़ाइल पर लॉग लिखता है लेकिन मुख्य अंतर यह है कि FileLoggingSession
फ़ाइल को तुरंत लॉग लिखता है, और LoggingSession
नहीं करता है, और आपकोके साथ फ़ाइल को लॉग इन करने का मैन्युअल रूप से अनुरोध करने की आवश्यकता हैविधि। प्रलेखन से:
फ़ाइल लॉजिंग सत्र वर्ग लॉग फ़ाइलों को लॉग फ़ाइलों को भेजता है जैसे वे लॉग हैं। FileLogging सत्र वर्ग अनुक्रमिक लॉगिंग का उपयोग करता है, जिसका अर्थ है कि सभी संदेश डिस्क फ़ाइल में भेजे जाते हैं, और संदेशों का अनुक्रमिक इतिहास बनाए रखा जाता है। यह LoggingSession क्लास से अलग है, जो मांग पर डिस्क पर लॉग संदेश भेजता है, और यह तब होता है जब कोई समस्या होती है और विश्लेषण के लिए इन-मेमोरी संदेशों का तत्काल इतिहास आवश्यक होता है।
MetroLog
आप किसी अन्य विकल्प आप FileLoggingSession
या LoggingSession
वर्गों का उपयोग करने के wan't नहीं करता है, तो है। एक अच्छा समाधान MetroLog है जिसमें FileStreamingTarget
लक्ष्य है जो विंडोज/फोन ऐप में लॉग इन करना बहुत आसान बनाता है।
आप लकड़हारा बनाने जब आप इसे एक पेज में की जरूरत है, उदाहरण के लिए:
public sealed partial class LogSamplePage : Win8Sample.Common.LayoutAwarePage
{
private ILogger Log = LogManagerFactory.DefaultLogManager.GetLogger<LogSamplePage>();
}
तो फिर तुम इस तरह पेज में इसका इस्तेमाल कर सकते हैं:
// flat strings...
if (this.Log.IsInfoEnabled)
this.Log.Info("I've been navigated to.");
// formatting...
if (this.Log.IsDebugEnabled)
this.Log.Debug("I can also format {0}.", "strings");
// errors...
try
{
this.DoMagic();
}
catch(Exception ex)
{
if (this.Log.IsWarnEnabled)
this.Log.Warn("You can also pass in exceptions.", ex);
}
MetroEventSource
दूसरा समाधान this कैन बिल्गिन द्वारा एमएसडीएन नमूना गैलरी पर लॉगिंग नमूना है जहां आपके पासहैकक्षा।आप इस तरह एक त्रुटि उदाहरण के लिए संदेशों प्रवेश कर सकते हैं:
MetroEventSource.Log.Error("Here is the error message");
आप इस लकड़हारा का उपयोग करते हैं मत भूलना नमूना परियोजना में वर्णित है, आवेदन चलाने पर यह प्रारंभ करने में।
मैं FileLogging सत्र के दस्तावेज के माध्यम से चला गया है और यह कहता है कि FileLogging सत्र तुरंत हार्डडिस्क पर लॉग ऑन करता है। हालांकि मुझे इसके लिए कोई नमूना नहीं दिख रहा है। ऐसा लगता है कि हमें एक लॉगिंग चैनल बनाना है, इसे FileLoggingSession में जोड़ें, इस लॉग चैनल का उपयोग करके लॉग इन करें। आखिरकार जब हम fileLoggingSession.closeAndSavetoFileAsync() को कॉल करते हैं, तो यह फ़ाइल को लॉग लिखता है। प्रश्न यह है कि FileLogging सत्र का उपयोग कर हार्डकिस्क पर तुरंत लॉग कैसे लिखें? क्योंकि अगर मैं अपनी ऐप को इससे पहले क्रैश करता हूं तो मैं closeAndSaveToFileAsync() को कॉल करने में सक्षम नहीं हो सकता। कृप्या सहायता करे। धन्यवाद! –