【C#.NET】log4netを利用してエラーや監視したい値を記録してログ保存しよう。
Nugetパッケージ
log4netはNuGetパッケージでインストールします。
まずは、NuGetパッケージの管理を開きます。
参照タブで検索欄に「log4net」と書き込み検索します。
上位にヒットしたlog4netを選択して、インストールボタンを押下してインストールします。
アンインストールも簡単にできます。
参照の追加
configファイル作成
configファイルを作成します。名前はlog4net.configにしましたが、適当でOKです。
configファイルの内容
新規作成したconfigファイルの中身に下記のコードを書き込む。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<appender name="tryLogAppender" type="log4net.Appender.RollingFileAppender" >
<File value=".\log\" />
<DatePattern value='yyyyMMdd".log"' /> //ログファイル名指定
<StaticLogFileName value="false" />
<RollingStyle value="date" />
<AppendToFile value="true" />
<MaximumFileSize value="100MB" />
<MaxSizeRollBackups value="30" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] (%method) - %message%n" />
</layout>
</appender>
<filter type="log4net.Filter.LevelRangeFilter">
<LevelMax value="FATAL" />
<LevelMin value="DEBUG" />
</filter>
<root>
<level value="Debug" />
<appender-ref ref="tryLogAppender" />
</root>
</log4net>
</configuration>
Configファイルのプロパティ設定
log4net.configファイルのプロパティを設定します。
出力ディレクトリにコピーの項目を「新しい場合はコピーする」または、「常にコピーする」に設定します。
AssemblyInfo.csに追記
Propertiesの配下にあるAssmblyInfo.csの中身に下記のコードを追記します。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
※ConfigFile = “(configファイル名)”
ログ出力
ログを出力させる
まずは、定義を作成します。
今回は以下の画面設定でつくってみました。
ログ出力してみます。
ソースコード↓
結果
実行すると、logファイルが作成されます。logフォルダの中に
logファイルが作成されていきます。
今回は日付毎にログファイルが作成されるようにconfigファイルで設定しました。
TextBox1に12.5、
TextBox2に7.3、を入力して
TextBox3に19.8を出力させるbutton1を押下したとき、
ログファイルに下記の様にログ出力されます。
2020-09-22 15:51:51,977 [1] [INFO ] (button1_Click) - 値1 :12.5 2020-09-22 15:51:52,012 [1] [INFO ] (button1_Click) - 値2 :7.3 2020-09-22 15:51:52,012 [1] [INFO ] (button1_Click) - 値1 + 値2 = 値3 :19.8
操作した日時、入力した値等が見れます。
logの区切りレベル
- Fatal システム停止するような致命的な障害レベル
- Error システム停止はしないが、問題となる障害レベル
- Warn 障害ではない注意警告レベル
- Info 操作ログなどの情報レベル
- Debug 開発用のデバッグメッセージレベル
- trace 詳細なデバッグの出力レベル
それぞれのレベル毎にログファイルを出力したりもできる。