2011-12-06 2 views
1

저는 log4net에 새로운 것이므로이를 사용하는 기존 코드를 유지하려고합니다. 나는 log4net에 다른 위치에 기록하도록 알려주는 2 개의 정적 클래스를 가지고있는 것이 서로 넘어지고 있음을 알았다. log4net의 서로 다른 두 위치에 로깅을 활성화하십시오.

클래스마다 다른 설정 값을 제외하고이

static Logger() { 
    _Logger = new X.LoggingService.AppLogger(
       X.UtilityServer.Configuration.ConfigInfo.LoggerConfigFile); 
} 

같다 정적 생성자가; 이 두 정적 클래스 모두 동일한 AppLogger 도우미 클래스를 초기화합니다. 초기화 할 두 번째 클래스는 첫 번째 클래스의 초기화를 덮어 씁니다. 내가 여기까지 문제를 추적했다고 생각 : 나는 절대적으로 스레드 안전를 지원하지 않기 때문에

private ILog Log { 
    get { 
     if (!_ConfiguratorSet) { 
      _ConfiguratorSet = true; 
      XmlConfigurator.Configure(new FileInfo(_ConfigFile)); //<--- STATIC 
     } 
     return _log; 
    } 
} 

, 난 그냥 if 문을 제거 얻을해야합니까? XmlConfigurator.Configure을 호출 할 때마다 무언가를 로그 할 필요가있을 때마다 비용이 비싸지 않습니까? 더 좋은 방법이 있습니까? 이 코드는 어떤 일이되어야하는 것은, 1.2.10

답변

관련 문제