最近我們將 UWP 程式部署到 Windows 10 IoT Core上時,
剛開始執行時,都OK。
但隔一段時間後,一些功能似乎沒有在運作。
懷疑程式可以有什麼 Exception ,而目前只有使用 Debug.WriteLine 去顯示訊息。
有看到 UWP 的 Logging Sample,是產生 ETL 檔。
可以使用 事件檢視器 開來看。
後來找到 MetroLog ,它是產生文字檔,對於輕量使用者來說,是足夠了。
以下是使用的方式,
1.從 NuGet 加入 MetroLog, 如下,
2.在 app.xaml.cs 的 App 建構子中,加入使用 MetroLog,如下(LogLevel 請依需求自行調整),
//using MetroLog;
//using MetroLog.Targets;
#if DEBUG
LogManagerFactory.DefaultConfiguration.AddTarget(LogLevel.Trace, LogLevel.Fatal, new FileStreamingTarget());
#else
LogManagerFactory.DefaultConfiguration.AddTarget(LogLevel.Error, LogLevel.Fatal, new FileStreamingTarget());
#endif
3.在要使用 MetroLog 的程式建立 Log 物件(如,MainPage.xaml.cs 所以class name 是 MainPage),如下,
//using MetroLog;
private ILogger log = LogManagerFactory.DefaultLogManager.GetLogger<MainPage>();
4.要記Log時,呼叫 log 物件的 Trace, Debug, Info, Warn ...如下,
this.log.Trace("This is a trace message.");
this.log.Debug("This is a debug message.");
this.log.Info("This is a info message.");
this.log.Warn("This is a warn message.");
this.log.Error("This is a error message.");
this.log.Fatal("This is a fatal message.");
寫好了之後,就可以將程式部到 Windows 10 IoT Core 上面去,
如果要看Log的話,可以透過網芳來取得 MetroLog 的資料。
5.連到 \\[IoTCore ip or name]\c$ ,並輸入帳號及密碼 (Iot Core 也可透過網芳來access 哦!),如下,
6.到 \\[IoTCore ip or name]\c$\Data\Users\DefaultAccount\AppData\Local\Packages\[package name]\LocalState 找到 MetroLog 的目錄,裡面會以 Log-日期.log
要看Log直接開起來看就可以了哦!
參考資料
Adicionando logs em Universal Apps
Using Windows file sharing to transfer files to and from your device
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^