0
INFO 로그 메시지에 예외가 포함되어 있으면 INFO 로그 수준을 WARN으로 변환하려고합니다. 어쨌든 내가이 일을 할 수 있니? (.NET 응용 프로그램에서 log4net을 통합하려고합니다.)로그 수준 변환 (log4net)
INFO 로그 메시지에 예외가 포함되어 있으면 INFO 로그 수준을 WARN으로 변환하려고합니다. 어쨌든 내가이 일을 할 수 있니? (.NET 응용 프로그램에서 log4net을 통합하려고합니다.)로그 수준 변환 (log4net)
로깅 호출을 이미 랩핑하지 않은 경우 log4net에 전달하기 전에 메시지를 가로 챌 수있는 가장 좋은 방법은 로그를 승격시키는 고유 한 애 퍼처를 만드는 것입니다 적절한 이벤트.
<appender name="DatabaseAppender"
type="Your.Namespace.Here.PromotingAdoNetAppender">
…
: 당신이해야 할 모든 당신의 설정에이 어 펜더 유형을 선언하는 것입니다 그리고
public static class AppenderExtensions
{
public static LoggingEvent Promote(this LoggingEvent loggingEvent)
{
if (loggingEvent.Level != Level.Info
|| loggingEvent.ExceptionObject == null)
{
return loggingEvent;
}
var data = loggingEvent.GetLoggingEventData(FixFlags.All);
data.Level = Level.Warn;
return new LoggingEvent(data);
}
}
public class PromotingAdoNetAppender : AdoNetAppender
{
protected override void Append(LoggingEvent loggingEvent)
{
base.Append(loggingEvent.Promote());
}
}
public class PromotingRollingFileAppender : RollingFileAppender
{
protected override void Append(LoggingEvent loggingEvent)
{
base.Append(loggingEvent.Promote());
}
}
: 동일한 코드를 필요 각 펜더 서브 클래스로 나는 실제 승진을하지 확장 메서드를 만들었습니다
코드 스 니펫을 보내 주셔서 감사합니다. 첫 번째 제안에 따라 log4net 로거 주위에 래퍼를 만들었습니다. 이렇게하면 사용자 정의 로거를 사용할 필요없이 원하는 결과를 얻을 수 있습니다. – TheGuest