31

Visual Studio 2005 の ASP.NET アプリケーションで log4net を使用しようとしています。ロガーのインスタンスを次のように宣言しました。

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

私は次の方法でそれを使用しようとしています:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

これが私の構成です:

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

残念ながら、log.IsDebugEnabled常に false です。
デバッグ メッセージのみをログに記録できるように log4net を構成するにはどうすればよいですか?

4

6 に答える 6

44

LogManager.GetLogger("") を呼び出す前に

log4net.Config.XmlConfigurator.Configure(); を呼び出す必要があります。ASP.NET アプリでは、おそらくこの呼び出しを Application_Start に入れたいと思うでしょう。

于 2008-10-20T21:33:20.723 に答える
25

はい、アンソンが言ったようにしてください。また、クラス ライブラリで Configure を呼び出す場合は、クラスに属性を追加することでそれを行うことができます。

[assembly: XmlConfigurator(Watch = true)]

log4net.configファイルを使用している場合は、代わりに次のように使用します。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
于 2008-10-20T21:35:16.367 に答える
9

log4net 用に別の構成ファイルを使用している場合は、次の手順を実行します。他のすべてのセットアップ手順に従ってから、Visual Studio ソリューション エクスプローラーでファイルを右クリックし、プロパティを選択し、[詳細設定] オプション グループを展開して設定します。 「常にコピー」として「出力ディレクトリにコピー」の値。それは魔法を行います... :)乾杯!!

于 2012-12-02T16:17:01.747 に答える
1

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 
于 2014-03-20T02:20:08.673 に答える
0

log を使用する前に、任意のメソッドでこれを使用します。

log4net.Config.XmlConfigurator.Configure();

App.Config では、設定は次のようになります。

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
于 2014-02-10T11:20:15.190 に答える