Fluent API を使用して、EntLib を使用してロギングのさまざまな構成オプションを処理しています。
コードで loggingConfiguration セクションを手動で作成しています。RollingFlatFileTraceListener が実際にファイルをロールしないことを除いて、うまく機能しているようです。サイズ制限を尊重し、ファイルに書き込むデータ量を適切に制限しますが、実際に新しいファイルを作成してログを続行するわけではありません。
サンプルアプリと app.config でテストしましたが、うまくいくようです。したがって、必要と思われるすべての構成オプションがそこにあるにもかかわらず、何かが欠けていると思います。
コードの基本は次のとおりです (動作していないように見える構成を示すハードコーディングされた値を使用)。 //Fluent API の構成ビルダーを作成します。
//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);
どんな助けでも大歓迎です!