c# - Log4net構成の問題

c# asp.net .net asp.net-mvc log4net

今日私に奇妙なことが起こり始めました。私は、log4netが設定されたasp.net mvcアプリを持っていて、すべてが正常に動作していました。何かがどこかで変更されたはずですが、今は何もログに記録されていません(ログファイルは作成されていません)。

これが私のglobal.asax.cxです

protected void Application_Start()
{
    log4net.Config.XmlConfigurator.Configure();
}


これが私のweb.configの設定です:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="c:\logs\api\ApiLog.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="FileAppender" />
    </root>
  </log4net>


何らかの理由でc:\logs\api\apilog.txtファイルは作成されません。ただし、application_startメソッドをこれに変更すると、正常に機能します。

log4net.Config.XmlConfigurator.Configure(new FileInfo("DirectPathToMy\web.config"));


デフォルトでConfigure()を呼び出しても私のweb.configで構成が見つからない理由はありますか?
答え
なぜあなたのアプローチがうまくいかないのかわからないが、問題はあなたがプロジェクトでそれがアクティブにされていることを確認する必要があることです。

私は通常、これを/ Propertiesの下のAssemblyInfo.csのアセンブリレベル参照として配置します。

[アセンブリ:log4net.Config.XmlConfigurator()]

参照:
http://logging.apache.org/log4net/release/manual/configuration.html
関連記事

c# - ジェネリックメソッドを一種のテンプレートパターンとして使用できますか?

c# - セキュリティキーを使用した招待

c# - 2つのxmlノードを比較する方法は?

c# - UDPを使用したアプリケーション間の双方向通信

c# - WPFビデオプレーヤーでフレームにアクセスする

c# - ASP.NET MVC3、Razor-JavaScriptでのViewBagまたはURL変数の使用

c# - Winformsはビットマップ画像をクリアしますか?

c# - 待っているラムダ

c# - ウィンドウのPNGスクリーンショットを撮るが、空気透過性は維持する

c# - 非ブロッキングブロックからブロッキングコードを呼び出すときの制御の流れを理解していますか?