【问题标题】:Enterprise Library Fluent API and Rolling Log Files Not Rolling企业库 Fluent API 和滚动日志文件不滚动
【发布时间】:2011-09-26 01:41:37
【问题描述】:

我正在使用 Fluent API 来处理使用 EntLib 进行日志记录的各种配置选项。

我正在代码中手动构建 loggingConfiguration 部分。除了 RollingFlatFileTraceListener 实际上并没有滚动文件之外,它似乎工作得很好。它将遵守大小限制并适当限制写入文件的数据量,但实际上并不会创建新文件并继续记录日志。

我已经使用示例应用程序和 app.config 对其进行了测试,它似乎可以正常工作。所以我猜我错过了一些东西,尽管每个配置选项似乎都在那里。

以下是代码的基础知识(使用硬编码值来显示似乎不起作用的配置): //为 Fluent API 创建配置构建器 var configBuilder = new ConfigurationSourceBuilder();

            //Start building the logging config section                 
            var logginConfigurationSection = new LoggingSettings("loggingConfiguration", true, "General");                 
            logginConfigurationSection.RevertImpersonation = false;
            var _rollingFileListener = new RollingFlatFileTraceListenerData("Rolling Flat File Trace Listener", "C:\\tracelog.log", "----------------------", "",
                            10, "MM/dd/yyyy", RollFileExistsBehavior.Increment,
                            RollInterval.Day, TraceOptions.None,
                            "Text Formatter", SourceLevels.All);


            _rollingFileListener.MaxArchivedFiles = 2;

            //Add trace listener to current config
            logginConfigurationSection.TraceListeners.Add(_rollingFileListener);

            //Configure the category source section of config for flat file
            var _rollingFileCategorySource = new TraceSourceData("General", SourceLevels.All);

            //Must be named exactly the same as the flat file trace listener above.
            _rollingFileCategorySource.TraceListeners.Add(new TraceListenerReferenceData("Rolling Flat File Trace Listener"));

            //Add category source information to current config
            logginConfigurationSection.TraceSources.Add(_rollingFileCategorySource);          

            //Add the loggingConfiguration section to the config.
            configBuilder.AddSection("loggingConfiguration", logginConfigurationSection);

            //Required code to update the EntLib Configuration with settings set above.
            var configSource = new DictionaryConfigurationSource();
            configBuilder.UpdateConfigurationWithReplace(configSource);

            //Set the Enterprise Library Container for the inner workings of EntLib to use when logging
            EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);

任何帮助将不胜感激!

【问题讨论】:

    标签: enterprise-library enterprise-library-5


    【解决方案1】:

    您的时间戳模式错误。它应该是 yyy-mm-dd 而不是 MM/dd/yyyy。不支持“/”字符。

    此外,您可以通过使用fluent configuration interface 更轻松地实现您的目标。方法如下:

        ConfigurationSourceBuilder formatBuilder = new ConfigurationSourceBuilder();
    
        ConfigurationSourceBuilder builder = new ConfigurationSourceBuilder();
        builder.ConfigureLogging().LogToCategoryNamed("General").
            SendTo.
            RollingFile("Rolling Flat File Trace Listener")
            .CleanUpArchivedFilesWhenMoreThan(2).WhenRollFileExists(RollFileExistsBehavior.Increment)
            .WithTraceOptions(TraceOptions.None)
            .RollEvery(RollInterval.Minute)
            .RollAfterSize(10)
            .UseTimeStampPattern("yyyy-MM-dd")
            .ToFile("C:\\logs\\Trace.log")
            .FormatWith(new FormatterBuilder().TextFormatterNamed("textFormatter"));
    
        var configSource = new DictionaryConfigurationSource(); 
        builder.UpdateConfigurationWithReplace(configSource); 
        EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);
        var writer = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
    
        DateTime stopWritingTime = DateTime.Now.AddMinutes(10);
        while (DateTime.Now < stopWritingTime)
        {
            writer.Write("test", "General");
        }
    

    【讨论】:

      猜你喜欢
      • 2016-05-17
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多