【C#】log4netの使い方

2018.05.26 2019.10.26 492
【C#】log4netの使い方

こんばんわ!こふそ(@koheta0325)です!

log4netの使い方を紹介します。

環境

  • .NET Framework 4.6
  • VisuakStudio Community 2017

設定方法

log4netのインストール

ツール→Nugetパッケージマネージャー→ソリューションのNuGetパッケージの管理を選択します。

log4netを検索し、ヒットしたら、チェックボックスをいれてインストールを実行します。

 

AssemblyInfo.csの設定

log4netのログ出力形式の設定をApp.configに持たせる場合は、AssemblyInfo.csに対して、次のように追記します。


//最下行に追加 
//log4netの設定。App.configに設定を持たせる場合 
[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

//log4netの設定。任意のファイルに設定を持たせる場合 
//[assembly: log4net.Config.XmlConfigurator(Watch=true, ConfigFile="設定ファイルパス")]

ログの出力設定

App.configにログの出力設定を記述します。

<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<startup>
<supportedRuntime version=”v4.0″ sku=”.NETFramework,Version=v4.6″/>
</startup>

<appSettings>

</appSettings>

<!–log4netの設定ここから–>
<configSections>
<section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” />
</configSections>
<log4net>
<appender name=”LoggerFile” type=”log4net.Appender.RollingFileAppender”>
<!– ログファイルのパス –>
<File value=”C:\Logs” />
<!– 追加書き込み –>
<appendToFile value=”true” />
<!– 日付ごとにファイルを作成 –>
<rollingStyle value=”date” /> <!– ログ・ファイル名が固定ではない場合、falseを指定する –>
<staticLogFileName value=”false” />
<!– ファイル名の設定 –>
<datePattern value='”.”yyyyMMdd”.log”‘ /> <layout type=”log4net.Layout.PatternLayout”>
<!– ログの書式 –>
<conversionPattern value=”%d[%t] %p – %m%n”/>
</layout>
</appender>
<root>
<level value=”All” />
<!– どのログ出力先を使用するか –>
<appender-ref ref=”LoggerFile” />
</root>
</log4net>
<!–log4netの設定ここまで–>

</configuration>

サンプルプログラム



private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args) { 
    log.Fatal("Fatal"); 
    log.Error("Error"); 
    log.Warn("Warn"); 
    log.Info("Info"); 
    log.Debug("Debug");
    Console.ReadLine(); 
}

以上です。