我正在使用 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);
任何帮助,将不胜感激!