0

asp.net アプリケーションで Log4Net を使用したいのですが、次のことを行いました。

Web.Config ファイル内

<configSections>
  <section  name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections> 
<log4net>
  <logger name="File">
    <level value="All" />
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="Logs\\Log4Net.log"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
      </layout>
    </appender>
  </logger>
</log4net>

Global.asax で

<%@ Application Language="C#" %>

<script runat="server">

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    log4net.Config.XmlConfigurator.Configure();

}

そして Page_load で

try
{
    // There is no such Session, this is just to create error
    if (Session["userName"].ToString() == "Admin")
    {

    }
}
catch(Exception ex)
{
     log4net.ILog logger = log4net.LogManager.GetLogger("File");
}

BINフォルダーにも参照を追加しました。

コードを実行すると、期待どおりにエラーが発生し、その後、ログ ファイルを使用してソリューション エクスプローラーに新しいフォルダーが作成されます。しかし、ログ ファイルは空です。

エラーが発生した理由はわかりませんが、エラーを追跡または記録することはできませんか??

助けてください。前もって感謝します。

4

1 に答える 1

1

leppie さんが指摘したように、ログ メッセージを書き込むコードはないようです。例外ハンドラーはおそらく次のようになります。

catch(Exception ex)
{
    log4net.ILog logger = log4net.LogManager.GetLogger("File");
    logger.Error("something went wrong", ex);
}

投稿した構成も不完全なようです。log4netセクションが必要です(構成例を参照)。

于 2010-08-06T07:28:08.633 に答える