Регистрация в корпоративной библиотеке предлагает кучу битов, чтобы вертеться. Итак, перед тем, как приступить к изменению конфигурации, возможно, некоторые из готовых настроек позволят вам сделать то, что вы хотите?
Мне кажется, что вы хотите, чтобы ваше приложение регистрировало некоторые сообщения во время запуска, а затем не регистрировало больше сообщений. Я предполагаю, что вы явно знаете, когда вы закончите регистрировать сообщения запуска.
Если вышеприведенное верно, я думаю, что самый простой способ - использовать свойство Приоритет LogEntry.
В настройках файла конфигурации приоритетный фильтр с минимальным приоритетом 2:
<logFilters>
<add minimumPriority="2" maximumPriority="2147483647" type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.PriorityFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
name="Priority" />
<add enabled="true" type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.LogEnabledFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
name="LogEnabled Filter" />
</logFilters>
Затем при запуске используйте приоритет 2 (или больше) для регистрации ваших сообщений. Затем, когда вы знаете, что все готово, установите приоритет до 1.
Я бы лучше его инкапсулировал, но пример кода выглядел бы так:
public class MyApp
{
public static int LogPriority = 2;
public static readonly string MyAppCategory = "MyAppCategory";
static void Main()
{
Logger.Write("Loading 1...", MyAppCategory, LogPriority);
// ...
Logger.Write("Loading 2...", MyAppCategory, LogPriority);
// Done loading so turn off logging
LogPriority = 1;
Logger.Write("Message not logged", MyAppCategory, LogPriority);
}
}
Теперь, если вы когда-нибудь захотите включить ведение журнала для остальной части вашего приложения, просто уменьшите фильтр приоритетов с 2 до 1, и все будет зарегистрировано.