私はlog4netとEventLogAppender
を使用してWindowsイベントログにログを記録しようとしているコンソールアプリケーションを持っています。私も2つのRollingFileAppender
を持っていますが、それらは正しく動作しています。Log4net EventLogAppenderはルートロガーでのみ動作します、なぜですか?
<logger Name="EventLogger">
<level value="INFO" />
<appender-ref ref="EventLogAppenderInfo"/>
<appender-ref ref="EventLogAppenderError"/>
</logger>
この方法EventLogger
継承:
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderInfo" />
<appender-ref ref="RollingFileAppenderDebug" />
</root>
EventLogAppender
sがこのように構成され、EventLogger
と呼ばれるロガーにあります
RollingFileAppender
sがこのように構成され、ルートロガーでありますルートからアペンダー。 EventLogger
で何かをログすると、ログファイルにも書き込まれます。このようにした理由は、Windowsイベントログにすべての情報エントリをスパムしたくないからです。重要な情報だけです。しかし、私もすべてのエラーを記録したい。
これは私がロガー取得する方法である。このように構成
private static readonly log4net.ILog eventLog = log4net.LogManager.GetLogger("EventLogger");
問題
を、任意のレベルで何かをログに記録するeventlog
オブジェクトを使用して、log4netのは、Windowsへの書き込みはありませんイベントログですが、ログファイルに書き込むため、ルートのアペンダーが動作しています。
EventLogAppender
をルートに置くと機能していますが、イベントログに記録しないINFOレベルのエントリも記録しています。
私はこれが許可の問題ではないと考えています。ソースは既に作成されており、アクセス可能です。誰でも好奇心旺盛だ場合
ここは、2 EventLogAppender
秒以下のとおりです。
<appender name="EventLogAppenderInfo" type="log4net.Appender.EventLogAppender">
<applicationName value="ApplicationName" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy.MM.dd HH:mm:ss} [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<appender name="EventLogAppenderError" type="log4net.Appender.EventLogAppender">
<applicationName value="ApplicationName" />
<layout type="log4net.Layout.PatternLayout">
<IgnoresException value="False"/>
<conversionPattern value="%date{yyyy.MM.dd HH:mm:ss} [%thread] %-5level %logger [%property{NDC}] - %message%newline%exception" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="FATAL" />
</filter>
</appender>
私は何も考えることができないこれをやって、なぜlog4netの、誰もが解決策を持っている場合、それははるかに高く評価されるだろう!
乾杯!