ASP.NET環境でlog4netを使用するサンプルです。
以下の環境を想定して記述します。
お使いの環境と異なる箇所は読み替えてください。
- ツール:VisualStudio2012
- 言語:VB.NET
- フレームワーク:.NET Framework4.5
- log4net.dllの配置場所:C:\log\
手順
①以下URLからlog4netモジュールをダウンロードして、解凍します。
https://logging.apache.org/log4net/download_log4net.cgi
執筆時は、log4net-1.2.13-bin-newkey.zip
②モジュールの中には.Net Frameworkのバージョン毎にモジュールが用意されているので、お使いの環境のモジュールを取り出して任意の場所(今回は、「C:¥log¥」)に置きます。
- log4net.dll
- log4net.xml
.NET Framework 4.5を使用しますが、4.0フォルダ内のモジュールでOKです。
(\log4net-1.2.13\bin\net\4.0\release\)
③VisualStudioから「log4net.dll」に対して参照設定を行います。
参照の追加は、ソリューションエクスプローラーのプロジェクト名を右クリック→「参照の追加」を選択→参照マネージャー画面の「参照」ボタンをクリックして、log4net.dllを指定します。
以下のように参照設定欄に「log4net」と表示されればOKです。
④設定ファイル(log4net.xml)を書き換えます。
ダウンロードしたlog4net.xmlはものすごくたくさんの記述があって分かりずらいので、以下の記述に書き換えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <!-- ログファイル名 --> <File value="C:\log\test.log" /> <!-- 追加書き込み指定(追加書込みOK) --> <AppendToFile value="true" /> <!-- ログの出力フォーマット --> <layout type="log4net.Layout.PatternLayout"> <ConversionPattern value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> <root> <!-- 出力ログレベルの指定(全て) --> <level value="ALL" /> <!-- 出力タイプの指定(ファイルへ出力) --> <appender-ref ref="LogFileAppender" /> </root> </log4net> </configuration> |
出力ログレベルに指定できる値は、下記「【log4net.xmlに指定できるログレベル】」をご覧ください。
⑤次に、Web起動時にlog4netを読み込む設定をします。
Global.asax.vbの「Application_Start」メソッド内に以下を記述します。
1 2 3 4 |
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) log4net.Config.XmlConfigurator. Configure(New System.IO.FileInfo("C:\log\log4net.xml")) End Sub |
⑥これでとりあえずログを出力する準備は整いました。
あとは、ログを出力したいモジュールで以下のように記述します。
[1]、[2]、[3]がポイントです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Option Strict On Imports log4net '[1]log4netのインポートをする Public Class _Default Inherits Page '[2]メンバー変数領域にログの定義を記述する Dim log As ILog = log4net.LogManager. GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType) Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load '[3]ログを出力したい箇所で以下のように記述する logging.Debug("デバッグメッセージ") logging.Info("情報メッセージ") logging.Warn("警告メッセージ") logging.Error("エラーメッセージ") logging.Fatal("致命的メッセージ") End Sub End Class |
⑦実行すると、ログ出力先(C:\log\test.log)に以下のように出力されます。
2015-10-30 21:54:09,659 [12] DEBUG WebApplication1._Default - デバッグメッセージ
2015-10-30 21:54:09,665 [12] INFO WebApplication1._Default - 情報メッセージ
2015-10-30 21:54:09,666 [12] WARN WebApplication1._Default - 警告メッセージ
2015-10-30 21:54:09,666 [12] ERROR WebApplication1._Default - エラーメッセージ
2015-10-30 21:54:09,666 [12] FATAL WebApplication1._Default - 致命的メッセージ
値 | 意味 |
---|---|
ALL | 全てのログを出力 |
DEBUG | DEBUGレベル以上を出力 |
INFO | INFOレベル以上を出力 |
WARN | WARNレベル以上を出力 |
ERROR | ERRORレベル以上を出力 |
FATAL | FATALレベル以上を出力 |
備考
- log4netについて、もっと知りたい方は以下の記事が詳しくてわかりやすいです。
http://www.atmarkit.co.jp/ait/articles/0712/25/news121.html
(@IT「オープンソースのロギング・サービス「log4net」を使う」)
コメント