【ASP.NET MVC5】log4net の導入手順メモ♪ | oki2a24 で log4net を MVC5 プロジェクトに導入する方法を確かめました。
今回は、log4net の設定について、ログレベルごとに違うファイルにログを出力する方法、動的なログファイル命名、ログファイルのサイズ指定を残します。
ログレベルで出力ファイルを変える Config の中身
log4net タグの中身のみ、記述いたします。
- appendToFile : true でログをファイルに追記する。
- rollingStyle : ローリングの基準。Size または Date を指定する。
- levelMin : filter タグの中で使用。出力できる最小ログレベルを設定
- levelMax : filter タグの中で使用。出力できる最大ログレベルを設定
- conversionPattern : conversionPattern タグの log4net.Layout.PatternLayout タイプを親にして使う。ログ出力時のフォーマットを定義する。
参考 → Log4net(12) ConversionPatternの詳細 – shima111の日記- %date : 年-月-日 時:分:秒,ミリ秒
- %thread : スレッド番号
- %-5level : ログレベル
- %logger : ロガー名
- %property{NDC} : マルチスレッド時に役立つ、らしい。
- %message : ログメッセージ
- %newline : 改行
- %file : ロガー発生ファイル名
- %line : ロガー発生行
<!-- 通常ログ --> <appender name="InfoLogDailyAppender" type="log4net.Appender.RollingFileAppender"> <file value="App_Data/log4net/access.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="Debug" /> <levelMax value="Warn" /> </filter> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!-- エラーログ --> <appender name="ErrorLogDailyAppender" type="log4net.Appender.RollingFileAppender"> <file value="App_Data/log4net/error.log" /> <appendToFile value="true" /> <rollingStyle value="date" /> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="Error" /> <levelMax value="Fatal" /> </filter> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <root> <!-- 使用する Appender --> <appender-ref ref="InfoLogDailyAppender" /> <appender-ref ref="ErrorLogDailyAppender" /> </root>
動的なログファイル名の付け方
- file : ファイルパスとファイル名の先頭
- datePattern : ファイル名のパターンと、1日の範囲でのローリングの期間調整。たとえば yyyyMMdd-HHmm とすると毎分ファイルをローリングする。
- rollingStyle : ローリングの基準。Size または Date を指定する。
- staticLogFileName : true ならログファイル名は固定される。
<file value="App_Data/log4net/Info_" /> <datePattern value='yyyyMMdd".log"' /> <rollingStyle value="date" /> <staticLogFileName value="false" />
この例の場合、Info_20151021.log といったログファイルが生成され、記録されていきます。1日経つと、新たに Info_20151022.log ファイルに記録されていきますの。
file タグの Info_ と、datePattern の yyyyMMdd”.log” が合わさってファイル名が作られている点に注目です。さらに datePattern ではフォーマとではない固定文字列部分はダブルクォーテーション「”」で囲み、全体はシングルクォーテーション「’」で囲んでいます。
さらに、staticLogFileName を true にすることで、ファイル名の変更許可がなされ、Info_20151021.log という動的なログファイルを作れるようになっています。
ログファイルのサイズ指定
- maxSizeRollBackups : ログファイル数
- maximumFileSize : 1ファイルあたりの最大サイズ
<maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" />
おわりに
こちらのページを見て、はじめてログレベルごとにファイルを分割可能であること、ファイル名を動的にできることを知りました。影響を受けて、本投稿を執筆いたしました。ありがとう存じます!
後は本家ページの例を参考にしながら、タグ名の書き方を修正したり、タグの意味を確認したりで勉強をすすめることができました♪
- Apache log4net – Apache log4net: Config Examples
Config Examples ページ。特に RollingFileAppender が参考になります。 - Apache log4net – Apache log4net Manual: Configuration
Configuration ページ
以上です。
「【ASP.NET MVC5】log4net でログレベルごとにログを出力する設定!、動的なログファイル命名設定!、ログファイルのサイズ指定設定!」への1件の返信
[…] 【ASP.NET MVC5】log4net でログレベルごとにログを出力する設定!、動的なログファイル命名設定!、ログファイルのサイズ指定設定! | oki2a24 […]