如何在Windows Phone 8.1中收集应用程序日志?

时间:2014-11-21 06:37:10

标签: windows-phone-8.1

我是Windows手机平台的新手。有什么可用的东西像android中的logcat用于收集日志吗?提前感谢。

2 个答案:

答案 0 :(得分:6)

Windows 8.1引入了新类来简化日志记录。这些课程为LoggingChannelLoggingSessionothers

以下是一个例子:

<强> App.xaml.cs

LoggingSession logSession;
LoggingChannel logChannel;

public App()
{
    this.InitializeComponent();
    this.UnhandledException += App_UnhandledException;
}

void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    logChannel.LogMessage("Unhandled exception: " + e.Message);
    logSession.SaveToFileAsync(Windows.Storage.ApplicationData.Current.LocalFolder, "MainLog.log").AsTask().Wait();
}

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    logSession = new LoggingSession("MainLogSession");
    Resources["MainLogSession"] = logSession;

    logChannel = new LoggingChannel("AppLogChannel");
    logSession.AddLoggingChannel(logChannel);
}

<强> MainPage.xaml.cs中

LoggingChannel logChannel;

public MainPage()
{
    this.InitializeComponent();

    var logSession = (LoggingSession)Application.Current.Resources["MainLogSession"];
    logChannel = new LoggingChannel("MainPageLogChannel");
    logSession.AddLoggingChannel(logChannel);
    logChannel.LogMessage("MainPage ctor", LoggingLevel.Information);
}

高度建议在2013年建设会议期间观看Making your Windows Store Apps More Reliable主题演讲,其中Harry Pierson更详细地演示了这些新API(包括使用背景将日志文件上传到后端服务器)手机连接到交流电源时执行的任务。)

答案 1 :(得分:0)

您可以使用 System.Diagnostics.Debug 在Visual Studio控制台窗口中查看日志,但您之后无法收集它们,因为它仅在调试期间显示

我建议使用MetroLog,一种专为Windows应用商店和Windows Phone应用设计的轻量级日志系统。

您可以使用NuGet

安装它
Install-Package MetroLog

这是一个简单的例子:

using MetroLog;
using MetroLog.Targets;

LogManagerFactory.DefaultConfiguration.AddTarget(LogLevel.Trace, LogLevel.Fatal, new FileStreamingTarget());
GlobalCrashHandler.Configure();

ILogger log = LogManagerFactory.DefaultLogManager.GetLogger<MainPage>();

log.Trace("This is a trace message.");

您可以在http://talkitbr.com/2015/06/11/adicionando-logs-em-universal-apps找到解释如何将其添加到项目中的教程。还有关于检索这些日志的解释。