2016-04-20 9 views
1

Wie kann ich eine Datei pro Tag mit EnterpriseLibrary verwenden,Wie pro Tag eine Protokolldatei generieren

Ich habe den folgenden Code:

private static void configureLog(string logFile) 
    { 
     var builder = new ConfigurationSourceBuilder(); 

     builder.ConfigureLogging() 
       .LogToCategoryNamed("General") 
       .WithOptions.SetAsDefaultCategory() 
       .SendTo.FlatFile("Log File") 
        .FormatWith(new FormatterBuilder() 
        .TextFormatterNamed("Text Formatter") 
         .UsingTemplate("{message}")) 
        .ToFile(logFile).WithHeader(string.Empty).WithFooter(string.Empty); 

     var configSource = new DictionaryConfigurationSource(); 
     builder.UpdateConfigurationWithReplace(configSource);    
     EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);    
    } 

Aber es ist immer eine Protokolldatei generieren.

+0

Ich mag würde Ihnen dafür verwenden Konfiguration über Code vorschlagen. Sie können den rollierenden Flat-File-Trace-Listener verwenden. https://stackoverflow.com/questions/7812724/generate-logs-based-on-date-using-logging-application-block-for-el-5-0 –

+0

Entschuldigung, in meinem Projekt müssen wir diesen Weg verwenden, aber Ich habe geändert, um Rolling-Datei zu verwenden, und es erstellt eine neue Protokolldatei pro Tag, aber es protokolliert immer noch Protokoll in der älteren Datei. – Henrique

Antwort

0

Sie können Quartz.NET verwenden, um diesen Prozess für jeden Tag zu planen und das gleiche aufzurufen.

+0

Ich löse dieses Problem, danke. Aber jetzt habe ich andere, können Sie mir helfen: http://stackoverflow.com/questions/3676755/wrong-content-rollingfile-log – Henrique

0

ich dieses Problem lösen mit RollingFile Konfiguration:

var builder = new ConfigurationSourceBuilder(); 

    builder.ConfigureLogging() 
     .LogToCategoryNamed("General") 
     .WithOptions.SetAsDefaultCategory()     
     .SendTo.RollingFile("Log File") 
     .RollEvery(Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollInterval.Day) 
     .UseTimeStampPattern("yyyyMMdd") 
     .WhenRollFileExists(Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollFileExistsBehavior.Overwrite) 
     .FormatWith(new FormatterBuilder() 
      .TextFormatterNamed("Text Formatter") 
      .UsingTemplate("{message}")) 
    .ToFile(SettingsHelper.LogFilePath)       
    .WithHeader(string.Empty) 
    .WithFooter(string.Empty);       

     var configSource = new DictionaryConfigurationSource(); 
     builder.UpdateConfigurationWithReplace(configSource); 
     EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource); 
Verwandte Themen