2009-07-30 6 views
0

로깅 (Common.Logging 사용)을 구현 한 웹 응용 프로그램이 있습니다. 이제 로그 메시지가 데이터베이스에 저장됩니다. 그러나 시스템의 한 부분 인 가져 오기 프로세스에서 누적 된 로그 메시지가 아닌 해당 가져 오기 프로세스와 관련된 로그 메시지 만 표시하고 싶습니다.그룹 로그 메시지

당신은 ILOG는 DI (과 주입

내 (Common.Loggning에서) ILOG에 따라 ImportProcessor, 또한 ILOG와 다른 물건에 따라 약간의 수입 구성 요소에 대한 코드를 .. 아래 참조 autofac) 여기서 Logname은 자동으로 해결됩니다.

public class ImportProcessor 
{ 
    private readonly ILog log; 
    private readonly IImportFetcher fetcher; 
    private readonly IImportFormatter formatter; 
    private readonly IEnumerable<IImportFilter> filters; 
    private readonly IEnumerable<IImportExporter> exporters; 

    internal ImportProcessor(ILog log, IImportFetcher fetcher, IImportFormatter formatter, IEnumerable<IImportFilter> filters, IEnumerable<IImportExporter> exporters) 
    { 
     this.log = log; 
     this.fetcher = fetcher; 
     this.formatter = formatter; 
     this.filters = filters; 
     this.exporters = exporters; 
    } 

    public void Execute() 
    { 
     log.Info("Import starts"); 

     var rawdata = fetcher.Fetch(); 
     var importDatas = formatter.Transform(rawdata); 

     foreach (var filter in filters) 
     { 
      importDatas = filter.Filter(importDatas); 
     } 

     foreach (var exporter in exporters) 
     { 
      exporter.Export(importDatas); 
     } 

     log.Info("Import done");    
    } 
} 

해당 ImportProcessor와 관련된 모든 로그 메시지를 그룹화하는 방법에 대한 좋은 제안이 있으십니까?

답변

1

당신은 엔터프라이즈 라이브러리 로깅을 사용하여 시도 할 수 : EntLib를 사용

http://msdn.microsoft.com/en-us/library/dd139916.aspx

는, 로그가 다른 이벤트를 구독 할 수 있습니다. 모든 이벤트를 한 곳에서 처리하는 동시에 특정 이벤트를 별도의 로그에 저장하도록 허용합니다.

관련 문제