C#アプリケーションを作る上で効率的にログを記録するためにlog4netの使用方法について解説します。
プロジェクトの作成
ここではvisual studio 2022 communityを使用しています。
まずwindows formアプリケーション(.net Framework)でプロジェクトを作成します。ここではフォーム上にボタンを一つ貼り付けています。
Log4Netのインストール
ソリューションエクスプローラー内からソリューションを右クリックして、NuGetパッケージの管理を選択します。
log4netを選択してインストールをクリックします。
インストールが完了したら、NuGetのタブは閉じてしまって問題ありません。
設定ファイルの記述
ProjectのPropeties>Assemblyinfo.csを開き、以下を入力します。
[assembly:log4net.Config.XmlConfigurator(Watch = true,ConfigFile ="log4net.config")]
App.Configの記述
App.configを開き、以下の記述をします。
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
Log4Net.Configの作成
プロジェクト>追加>アプリケーション構成ファイルを追加します。
例として、以下のような記述をlog4net.configファイル内に記述する
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<appender name="ConsoleLog" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%t] %p %logger.%M - %m%n"/>
</layout>
</appender>
<appender name="FileLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\logs\Logging.log" />
<param name="AppendToFile" value="true" />
<param name="rollingStyle" value="Size" />
<param name="maxSizeRollBackups" value="3" />
<param name="maximumFileSize" value="5KB" />
<param name="staticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%t] %p %logger.%M - %m%n"/>
</layout>
</appender>
<appender name="ErrorFileLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\logs\Error\Error.log" />
<param name="AppendToFile" value="true" />
<param name="rollingStyle" value="Size" />
<param name="maxSizeRollBackups" value="3" />
<param name="maximumFileSize" value="5KB" />
<param name="staticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%t] %p %logger.%M - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="Error" />
<levelMax value="Error" />
</filter>
</appender>
<root>
<level value="DEBUG"/>
<!-- 使用するアペンダを設定 -->
<appender-ref ref="ConsoleLog" />
<appender-ref ref="FileLog" />
<appender-ref ref="ErrorFileLog" />
</root>
</log4net>
</configuration>
使用方法
使用方法の例として、Form内でloggerを使用する方法を以下に載せる。
まずクラス変数として_loggerを作成する。
ログを記述したい部分で、_loggerのメソッド(Debug, Info, Warn, Error, Fatal)を呼び出す。
F5デバッグをして、フォーム上のButton1をクリックすると、ログファイルにはログが記録されていることがわかります。
最後に
ここではLog4Netの設定方法について、解説しました。
細かいログのフォーマットなどの使用方法はLog4Netのサイトで詳細を確認するようにお願いします。
以下はLog4Netの使用方法について簡単な説明があります。