C#

C#でログの取り方(log4netの使い方)

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のプロパティで出力ディレクトリにコピーを“新しい場合はコピーする”に変更します

例として、以下のような記述を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の使用方法について簡単な説明があります。