2013-05-02 2 views
1

ExtendedLog4NetLogger.cs 을 사용하여 런타임시 로그 파일 경로를 동적으로 변경하거나 LoggingFacility를 사용하는 방법을 찾으려고합니다.ExtendedLog4netLogger.cs를 사용하여 런타임에 appender의 로그 파일 경로를 설정하는 방법은 무엇입니까?

이 이렇게 직접 log4net을 사용하여 비슷한해야한다 :

container.AddFacility<LoggingFacility>(f => f.UseLog4Net());

업데이트 : :이 같은 log4net 통합을 등록하면 나는 ExtendedLogger에 액세스 할 방법

log4net.GlobalContext.Properties["LogName"] = logName;

을 내가 사용하는 다음 확장 로거를 등록하는 코드

container.AddFacility<LoggingFacility>(LoggerImplementation.ExtendedLog4net).WithConfig(configFile).ToLog(Lo‌gger));

ime 예외이며 로거는 null 인스턴스가 아니지만 전역 속성을 사용하여 작성된 로그 파일이 보이지 않으며 appender에 대한 구성 값을이 값으로 설정합니다.

<file type="log4net.Util.PatternString" value="%property{LogName}" />

방금 ​​파일을 설정 한 경우 속성이 설정 파일의 전체 경로로 작동하는지 확인하십시오. 전역 변수를 설정하기 전에 구성이 완료 되었기 때문에 작동하지 않는지 궁금합니다.

답변

2
extendedlogger.GlobalProperties["logName"] = logName; 

당신이 할 필요가 확장 된 로거를 사용하려면 다음

container.AddFacility<LoggingFacility>(f => f.LogUsing(LoggerImplementation.ExtendedLog4net)); 
+0

덕분에이 르지, 내 질문을 업데이트 : 여기

은 예입니다. – OutOFTouch

+0

이것은 나에게 설정 파일 경로를 전달하고 등록 할 때 이름 지정 로거를 사용하는 방법에 대한 다른 문제를 일으킨다. container.AddFacility (f => f.UseLog4Net (configPath) .ToLog (namedLogger)); – OutOFTouch

+0

나는 이것을 시험해보고 작동하는지 확인한다 : container.AddFacility (f => f.LogUsing (LoggerImplementation.ExtendedLog4net) .WithConfig (configPath) .ToLog (namedLogger)); – OutOFTouch

0

1. 내가 log4net의이 같은 통합 등록하면 나는 ExtendedLogger에 액세스 할 방법 : 의존성 주입을 사용

을 필요한 곳에 IExtendedLogger 객체를 기대할 수 있습니다.

2. 전역 변수를 설정하기 전에 구성이 완료 되었기 때문에 작동하지 않는지 궁금합니다.

맞아요. 특성을 설정 한 후에 log4net을 재구성해야합니다. 내가 윈저 워드 프로세서와 같이 내가 사용하는 log4net 통합의 등록을 사용하여이 클래스에 액세스 할 방법을 잘이기 때문에

using Castle.Core.Logging; 
using log4net.Config; 

class MyClass { 
    private readonly IExtendedLogger _extendedLogger; 

    public MyClass(IExtendedLogger extendedLogger) { 
     _extendedLogger = extendedLogger; 
    } 

    public void MyFunction() { 
     _extendedlogger.GlobalProperties["logName"] = logName; 
     XmlConfigurator.Configure(); 
     _extendedlogger.Error("my error message"); 
    } 
} 
관련 문제