이 메시지는 650694과 비슷하지만 아무런 응답도받지 못했습니다. 그런 제안이 전혀 들리지 않으며 약간 다른 상황에 처해있을 수 있습니다.log4net 로깅 수준을 프로그래밍 방식으로 변경하십시오.
저는 log4net.Config.XmlConfigurator.Configure()를 호출합니다. 그러나 프로그램의이 시점 이후에 로깅 임계 값을 런타임에만 알려진 값으로 변경하려고합니다.
((log4net.Repository.Hierarchy.Logger)mylogger.Logger).Level = log4net.Core.Level.Error;
과 : 다른 질문에서
, 나는 시도
var appender = new log4net.Appender.ColoredConsoleAppender();
appender.Layout = new log4net.Layout.PatternLayout(@"%date %-5level %message%newline");
appender.Threshold = log4net.Core.Level.Error;
appender.ActivateOptions();
log4net.Config.BasicConfigurator.Configure(appender);
을하지만, 어느 하나가 어떤 영향을 미칠 것으로 보인다 : 나는 아직도 DEBUG보고 있어요 및 정보가 콘솔에 문 로깅 .
내 직감은 새로운 appender를 추가하고 있는데, 이는 XML config (DEBUG 레벨 메시지를 출력한다고 알려주는) appender에 아무런 영향을주지 않지만, 아직 어떤 증거도 없다. .
저는 지금 log4net API를 잠시 파고 있었고, 지금은 보지 않고 있습니다. 내가 누락 된 간단한 것이 있습니까?
로거 수준을 "오류"로 설정하면 해당 로거의 디버그 또는 정보 출력이 로깅되지 않습니다. 로깅 수준을 변경중인 바로 로거에 대해 디버그 및 정보가 표시됩니까? – Eddie
좋은 지적입니다. # 1은 아마도 한 로거에 대한 임계 값 만 설정합니다. 그러나 # 2는 그것이 글로벌해야하는 것처럼 보입니다. – Ken
예 # 1은 변경중인 단일 Logger 인스턴스에 대한 임계 값과 명시 적으로 설정된 레벨이없는 계층의 Logger 아래에만 설정합니다. – Eddie