【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 詳細なデバッグの出力レベル
それぞれのレベル毎にログファイルを出力したりもできる。