はじめに
MVCモデルでアプリケーションを新規作成しています。
今回はログ出力機能を追加しようと思います。
自作しても良いのですが、開発コストを考慮し「log4net」を使用することにしました。
ログ出力
log4netを追加
参照設定の追加する
NuGetパッケージマネージャーから「log4net」を追加します。
設定を読み込ませる
アセンブリ(AssemblyInfo.cs)に以下を追加する
AssemblyInfo.cs
// 設定ファイル「log4net.config」を読み込む
[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "log4net.config")]
設定ファイル「web.config(app.config)」を読み込む場合、ConfigFileは不要です。
AssemblyInfo.cs
// 設定ファイル「web.config(app.config)」を読み込む
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
また、任意のクラスで以下を実行する事で初期化することが可能です。
XXXX.cs
// 設定ファイル「log4net.config」を読み込む
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
設定ファイル
「log4net.config」を追加して以下の内容を記述します。
log4net.config
<configuration>
<log4net>
<appender name="DebugLogAppender" type="log4net.Appender.RollingFileAppender">
<file value="log/Debug.log" />
<appendToFile value="true" />
<datePattern value="_yyyyMMdd" />
<preserveLogFileNameExtension value="true" />
<staticLogFileName value="false" />
<lockingModel type="log4net.Appender.FileAppender+InterProcessLock" />
<encoding value="utf-8" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="500MB" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.fff} %-5p %m%n" />
</layout>
</appender>
<root>
<level value="Debug" />
<appender-ref ref="DebugLogAppender" />
</root>
</log4net>
</configuration>
「web.config(app.config)」に書く場合は以下を追加します。
web.config(app.config)
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!-- log4net.configの場合と同じ -->
</log4net>
</configuration>
log4netを使ったログ出力
以下のコードでログが出力される。
log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
logger.Debug("開始")
↓
2025-08-23 22:59:28.908 DEBUG 開始