環境
- .NET Framework 4.8
- NLog 5.0.1
- NLog.Windows.Form 4.6.0
手順
※NLogが既に使える状態になっているのを前提とします。
- NuGetからNLog.Windows.Formをインストール
- フォームにRichTextBoxを配置
- ログ設定を書き込む
1. NuGetからインストール
NLog.Windows.Formをインストールしてください。
2. RichTextBoxを配置
ログを書き込みたいRichTextBoxを配置してください。
既に配置済みであればそれをそのまま使います。
3. ログ設定を書き込む
.configファイルではなく、コードにログ設定を書き込むことにします。
Form1のコンストラクタに書いてみましょう。
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
var target = new NLog.Windows.Forms.RichTextBoxTarget();
{
Name = "richTextBox", // ターゲット名
TargetRichTextBox = richTextBox1, // ログ出力したいRichTextBoxを指定
AutoScroll = true, // オートスクロール有効
Layout = @"${date:format=yyyy-MM-dd HH\:mm\:ss} ${level:uppercase=true} ${message}", // ログ出力レイアウト
};
// 既存のルールに追加
var config = NLog.LogManager.Configuration;
config.AddRule(NLog.LogLevel.Info, NLog.LogLevel.Fatal, target);
NLog.LogManager.Configuration = config;
}
}
ターゲット名などのプロパティや、出力するログレベルは必要に応じて変更してください。
https://github.com/NLog/NLog/wiki/RichTextBox-target
これで、ログ出力を行うとRichTextBoxにも同じ内容が出力されるようになりました。