- PR -

ASP.NETにlog4netうまく出力できません

1
投稿者投稿内容
常連さん
会議室デビュー日: 2008/10/23
投稿数: 21
投稿日時: 2008-10-23 14:55
始めまして、.net初心者のりです。
VS2005を使って、ASP.NETにlog4netでログを出力したいですが、
ログファイルに何も出力しなかった。
Golbal.aspxのApplication_Startに下記内容を記述して、
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("D:\\WebSite1\\Bin\\log4net.xml"));

Default.aspxに下記内容を記述して、
log4net.ILog log = log4net.LogManager.GetLoggerSystem.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

protected void Page_Load(object sender, EventArgs e)
{
log.Debug("##Debug test");
log.Error("##Error test");
log.Fatal("##Fatal test");
log.Info("##Info test");
}
web.configに下記内容を追加して、
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<appSettings>
<!-- log4net内部のデバッグメッセージを出力する場合、trueに設定 -->
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<log4net>
<!-- ここに log4net.config の内容を記述。 -->
<appender name="DailyAppender" type="log4net.Appender.RollingFileAppender">
<!-- ファイル名 -->
<param name="File" value="trace.log"/>
<!-- 追記する場合 true / 上書きする場合 false -->
<param name="AppendToFile" value="true"/>
<!-- 日付や時刻の制約によるログファイルの切替 -->
<param name="RollingStyle" value="Date"/>
<!-- 上から「毎月、毎週、毎日、半日、毎時、毎分」の設定(デフォルトは毎日) -->
<!-- <param name="DatePattern" value="yyyy-MM" /> -->
<!-- <param name="DatePattern" value="yyyy-ww" /> -->
<!-- <param name="DatePattern" value="yyyy-MM-dd" /> -->
<!-- <param name="DatePattern" value="yyyy-MM-dd-a" /> -->
<!-- <param name="DatePattern" value="yyyy-MM-dd-HH" /> -->
<!-- <param name="DatePattern" value="yyyy-MM-dd-HH-mm" /> -->
<param name="DatePattern" value="yyyy-MM-dd"/>
<!-- 保存するファイル数(数を超えた場合は古いものから削除) -->
<param name="MaxSizeRollBackups" value="7"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p - %m%n"/>
</layout>
</appender>
<root>
<!-- 出力レベル -->
<level value="INFO"/>
<!-- 使用する Appender -->
<appender-ref ref="DailyAppender"/>
</root>
</log4net>
<system.web>
<compilation debug="true"/></system.web></configuration>

長文ですが、申し訳御座いません。
ご存知する方が教えていただけませんか。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-10-23 15:39
引用:

飛さんの書き込み (2008-10-23 14:55) より:

Golbal.aspxのApplication_Startに下記内容を記述して、
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("D:\\WebSite1\\Bin\\log4net.xml"));


ここと、
引用:

web.configに下記内容を追加して、


ここが、ムジュンしていると思います。
常連さん
会議室デビュー日: 2008/10/23
投稿数: 21
投稿日時: 2008-10-23 15:53
rainさん、ご回答ありがとう御座いました。
詳しい内容を教えていただけませんか。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-10-23 16:19
log4net の設定を web.config に記述するのであれば、Application_Start で書く内容はこれだけでOK。
コード:
log4net.Config.XmlConfigurator.Configure();



log4net の設定を別ファイルに記述するのであれば、そうした後で Application_Start で書く内容を下のようにする。
コード:
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(/* 設定ファイルの絶対パス */));


本当は Server.MapPath() メソッドを使って相対パスで指定するほうがおすすめなのですが、私には具体的な方法を説明する能を持ちません。
常連さん
会議室デビュー日: 2008/10/23
投稿数: 21
投稿日時: 2008-10-23 16:38
rainさん
ご説明ありがとう御座いました。
ご指摘にて、分かりましたが、
正しい手順を教えてくいただけませんか
宜しくお願いいたします。
常連さん
会議室デビュー日: 2008/10/23
投稿数: 21
投稿日時: 2008-10-23 16:44
ありがとう御座いました。
ログが出力できました!
1

スキルアップ/キャリアアップ(JOB@IT)