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. 言語設定 について記述したいと思います。