log4net v2.0.8 (NuGet을 통해 설치됨)을 사용하는 C# Framework 4.5.2 프로젝트가 있고 적어도 10 가지가 다르지만 비슷한 질문을 읽었습니다. 그들 중 내 문제가 해결되었습니다. 물론 로그 애펜더에 성공적으로 쓸 수 있지만 필터링/임계 값은 작동하지 않습니다. 하나의 로거 (ROOT 또는 명명 된 인스턴스 사용 중)를 사용하고 특정 로더 (예 : 파일, db, smtp 등)를 사용하기 위해 실제 로깅을 지시하는 다른 임계 값/필터를 설정했습니다. 이렇게하면 특정 레벨의 필터 값이 단일 appender에 의해서만 처리 될 수 있습니다. 테스트를 위해 파일 첨부자가 Info (및 그 이상) 임계 값을 기록하는 동안 Warning 및 위 임계 값을 사용하여 ADO appender를 사용하려고합니다. 그래서, 내가 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>
나는 g a logger 섹션의 appender-ref 내의 Threshold. appender 내에서 직접 가져 왔습니다. levelMatch/levelMax (아래 참조)와 함께 LevelMatchfilter를 사용했습니다. LevelRangeFilter, 아무 것도. 아무것도 올바르게 작동하지 않습니다.
<filter type="log4net.Filter.LevelMatchFilter">
<levelMin value="Warning" />
<levelMax value="Fatal" />
</filter>
<threshold value="Warning" />
저는 Evaluator를 통합하려고 시도했지만 작동하지 않습니다.
대부분의 온라인 예제는 5 년 이상되어 종종 v1.2에 대해 이야기합니다. 이것의 최신 버전에 뭔가가 있습니까, 아니면 그냥 다른 것을 놓치고 있습니까? 아니면 잘못된 순서로 그것을하고 있습니까? 어떤 도움을 주셔서 감사합니다. 고맙습니다!