log.IsDebugEnabledがtrueになるようにlog4netを構成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/220021

質問

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を設定するにはどうすればよいですか

役に立ちましたか?

解決

LogManager.GetLogger(&quot;&quot;)を呼び出す前に

log4net.Config.XmlConfigurator.Configure()を呼び出す必要があります。 ASP.NETアプリでは、おそらくこの呼び出しをApplication_Startに配置する必要があります

他のヒント

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

[assembly: XmlConfigurator(Watch = true)]

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

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

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

設定ファイルではなくコードでlog4netを設定している場合、 GetLogger の前に log4net.Config.BasicConfigurator.Configure を呼び出すことができます。

VB.NET-

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 

ログを使用する前に、任意の方法でこれを使用します。

log4net.Config.XmlConfigurator.Configure();

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

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top