PrismWPFSample(3)ログの保存
Prismを使用したWPFアプリケーション開発で役に立つと思われる項目を一つのアプリケーションにまとめたものを作りました。今回は、ログの保存方法について書いています。
動作環境:Win10, Visual Studio Community 2017, Prism V7.1.0.431, .NET4.5.2, Prism Template Pack, TraceListeners, WPFLocalizeExtension, OxyPlot
アプリの外観はこんな感じです。
ログの保存方法自体については 以前に書いています。
TraceListeners プロジェクトの DateTimeTraceListener.cs とPrismWPFSample の app.config が以前書いた部分になります。
feynman.hatenablog.com
CommonModels での設定
モジュールから個別にログに書き込むのも煩雑なので、CommonModels に次のようなプロパティーを設定して置いて、書き込みたい文言を設定することでログへの保存を行っています。
private string logString = ""; /// <summary> /// このプロパティーに設定するとログに書き込まれる /// </summary> public string LogString { get { return logString; } set { if (value != "")System.Diagnostics.Trace.WriteLine(value); SetProperty(ref logString, value); } }
コマンドボタン
コマンドボタンは 下記の M3ViewModel の CommandLogWrite にバインドされていて、ログが保存されます。
private DelegateCommand commandLogWrite; /// <summary> /// ログ保存テストコマンド /// </summary> public DelegateCommand CommandLogWrite => commandLogWrite ?? (commandLogWrite = new DelegateCommand(ExecuteCommandLogWrite)); async void ExecuteCommandLogWrite() { myCommonData.LogString = "Module3のボタンが押されました"; await Task.Delay(2000); myCommonData.LogString = ""; }
ボタンを押すと、実行ファイルが置かれているフォルダーの下のTraceフォルダーに日付名のファイル 2019****00.log を作り、
2019/**/** 21:39:03 Module3のボタンが押されました
の様に書き込まれます。
次回は、4. 言語設定 について記述したいと思います。