2009-07-30 127 views
0

我有一個web應用程序,我已經在其中實現了日誌記錄(使用Common.Logging),它現在將日誌消息保存到數據庫。但是在系統的一部分,一個導入過程中,我只想呈現與該導入過程相關的日誌消息(用戶實例化的),而不是累積的日誌消息。組日誌消息

下面你看到我的ImportProcessor,這取決於ILog的(從Common.Loggning)和一些進口元件,這也取決於ILog的和一些其他的東西代碼..

ILog的注射用DI( 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相關的所有Log消息進行分組,您有什麼好的建議嗎?

回答