概要
log4netはログ出力を行うライブラリで、これを使ってC#のプログラムのログ出力を行います。
log4netの導入手順
まずは、log4netを自分のプロジェクトに導入する必要があります。
Visual Studioを開き、ソリューションの右クリックメニューから「ソリューションのNuGetパッケージ管理」を選択します。
log4netで検索して、log4netのインストールを行います。
インストールが完了すると、参照やpackages.configを見ると、パッケージがインストールされていることが分かります。
実践
log4net.xmlの作成
プロジェクトの直下に、log4net.xmlファイルを作成します。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<appender name="log4net" type="log4net.Appender.RollingFileAppender">
<appendToFile value="true" />
<StaticLogFileName value="false" />
<rollingStyle value="Date" />
<file value=".\log\trace-" />
<DatePattern value='yyyyMMdd".log"' />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="Error" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%level] %message%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="log4net" />
</root>
</log4net>
</configuration>
上記のような内容で、ログ出力の設定を入力します。
log4netのパラメータは多々あるのでググってみてください。
また、ビルド時にlog4net.xmlを出力するように、プロパティの設定「出力ディレクトリにコピー」を常にコピーするに設定変更します。
AssemblyInfo.csにlog4net.xmlの設定
以下を、Properties\AssemblyInfo.csのファイルに追記
[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "log4net.xml")]
ログ出力実装
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleTest1
{
internal class Program
{
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
logger.Debug("デバッグ");
logger.Info("情報");
logger.Warn("警告");
logger.Error("エラー");
logger.Fatal("致命的障害");
}
}
}
実行結果
2021-12-31 18:00:39,648 [DEBUG] デバッグ
2021-12-31 18:00:39,656 [INFO] 情報
2021-12-31 18:00:39,656 [WARN] 警告
2021-12-31 18:00:39,656 [ERROR] エラー
2021-12-31 18:00:39,656 [FATAL] 致命的障害
loggerを使って、テキストにログ出力することができました。