log4net v2.0.8(NuGet経由でインストール)を使用してC#Framework 4.5.2プロジェクトを作成しました。それらの私の問題を解決しました。確かに、私は正常に私のログappenderに書き込むことができますが、フィルタリング/しきい値は動作していません。私は単一のロガー(ROOTまたは名前付きインスタンスを使用しています)を持っており、特定のアペンダー(ファイル、db、smtpなど)を使用するように実際のロギングを指示するさまざまなしきい値/フィルターを設定しています。このようにして、特定のレベルのフィルタ値が単一のアペンダによってのみ処理される可能性があります。テストのために、私は単にファイルアペンダーがInfo(および上記の)しきい値を記録している間に、警告とそれ以上のしきい値をADOアペンダーを使用するようにしようとしています。ですから、私がInfo Logメソッドをテストすると、dbに終わるべきではありませんが、常にそうです。だから、どういうわけか私は構成が間違っています。ここで私はを通じて見てきた、と彼らは私に洞察力ではなく、解決策を与えているだけのカップルされていますさらに別のlog4net構成の問題。異なるしきい値を持つルートロガー(または単一の名前付きロガー)
構成:ここではいくつかのコードが
- log4net-logging-of-two-different-levels-to-two-different-appenders-for-the-same
- log4net-appender-threshold-not-working
です:
<!--<root>
</root>-->
<logger name="Logger">
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="AdoNetAppender"/>
</logger>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\temp\logging\derp.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %property{ProjectName} (%logger) - %message%newline" />
</layout>
<!--<threshold value="Info" />-->
</appender>
私はhavinを試しましたg a loggerセクションのappender-ref内のThreshold、私はアペンダ内で直接それを持っていました。私は、levelMatchFilterを、levelとlevelMin/levelMaxの両方で使用しました(下記参照)。 LevelRangeFilter、何もありません。何も正しく動作しません。
<filter type="log4net.Filter.LevelMatchFilter">
<levelMin value="Warning" />
<levelMax value="Fatal" />
</filter>
<threshold value="Warning" />
私はEvaluatorを組み込もうとしましたが、動作しません。
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="ERROR" />
</evaluator>
オンライン例のほとんどは、多くの場合、V1.2の話、5+歳です。これの新しいバージョンには何かがあるのですか、それとも何か他のものが欠落しているか、間違った順序でそれをやっていますか?どんな助けもありがとうございます。ありがとうございました!