QA@IT

ASP.Net(Webフォーム)でlo4netのログが出力されない

3208 PV

VisualStudio2008
WindowsServer2008R2
ASP.Net(VB.NET)

Webフォームでlo4netのログが出力されず、お力を頂けないでしょうか

ローカルでビルドしたWebアプリケーションの開発フォルダをテストサーバ環境のc:\inetpub\wwwroot下に配置して、
Webフォームが表示される処までは確認できたのですが、
ログ出力が実施されていません。(ローカル環境では出力されます)

log4netの設定は読み込まされているようですが、「GetAppenders」が取得できません。
読込自体が正しくされていないのか、「log4net.Appender.FileAppender」の設定に変更が必要なのでしょうか。

ご指導をお願いいたします。

●モジュールファイル
'ログ出力用lognet

Public Module mduModule
  ' ログ出力を実行するオブジェクト
  Public gLogger As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
End Module

●Global.aspx

Public Class Global_asax
    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' アプリケーションの起動時に呼び出されます。
        log4net.Config.XmlConfigurator.Configure()
    End Sub
End Class

●Webフォーム

Webフォームで使用するlognet
Private logger As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

  ' WEbアプリ用(Web.configの設定が有効)なlog4netをグローバルに保持
  gLogger = logger

  ' log4netの読込が出来ているが確認
  Me.txtMessage.Value = "gLogger IsInfoEnabled=" & gLogger.IsInfoEnabled '結果:True
  Me.txtMessage.Value = "gLogger Configured=" & gLogger.Logger.Repository.Configured '結果:True
  Me.txtMessage.Value = "logger IsInfoEnabled=" & logger.IsInfoEnabled '結果:True
  Me.txtMessage.Value = "logger Configured=" & logger.Logger.Repository.Configured '結果:True

  Dim filename As String = "ini"
  Dim repositories() As log4net.Repository.ILoggerRepository = log4net.LogManager.GetAllRepositories()
  For Each repository As log4net.Repository.ILoggerRepository In repositories
    For Each appender As log4net.Appender.IAppender In repository.GetAppenders()
      Dim fileAppender As log4net.Appender.FileAppender = DirectCast(appender, log4net.Appender.FileAppender)
      filename = fileAppender.File()
    Next
  Next
  Me.txtMessage.Value = "filename=" & filename '結果★取得できていない:"ini"

End Sub

●web.config

<?xml version="1.0"?>
<configuration>
    <configSections>
    <section name="log4net" requirePermission="false" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>  

  <log4net>
    <!-- INFOレベル以上のログ出力先の定義 -->
    <appender name="LogAppender" type="log4net.Appender.FileAppender">
      <!-- 作成するログファイル -->
      <File value="guitrace.log"/>
      <!--<File value="C:\guitrace.log"/>-->
      <!-- 追加モード -->
      <AppendToFile value="true"/>
      <!-- ログの書式 -->
      <layout type="log4net.Layout.PatternLayout">
        <ConversionPattern value="%date{yyyy/MM/dd HH:mm:ss}    %-5p    %m%n"/>
        <!-- <ConversionPattern value="%d [%t]%-5p %c - %m%n" /> -->
      </layout>

      <!-- ファイルロックしない -->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>

      <ErrorHandler type="Common.Util.clsLog4NetErrorHandler"/>
    </appender>

    <root>
      <!-- 出力するログレベル。どのログ出力先を使用するか -->
      <!-- levelタグ 指定レベルより上位レベルが出力対象 -->
      <level value="INFO"/>
      <appender-ref ref="LogAppender"/>
    </root>
  </log4net>
</configuration>

回答

再質問予定

編集 履歴 (1)
ウォッチ

この質問への回答やコメントをメールでお知らせします。