Я пытаюсь использовать библиотеки общей инфраструктуры для .NET (Common.Logging) с блоком приложения ведения журналов Enterprise Library 4.1.Согласно документам , это поддерживается.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь что-то записать, например (в этом примере я нахожусь в ASP.NETПриложение MVC):
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
ILog log = LogManager.GetCurrentClassLogger();
log.Info("Hello world!");
return View();
}
Вместо получения сообщения в журнале я получаю сообщение об ошибке в журнале событий:
Сообщение: явного сопоставления для категорий'TestApp.Controllers.HomeController'.
Что ж, в Common.Logging, похоже, нет никакой опции для установки категории по умолчанию, и я не могу понять, как настроить LoggingConfigurationпринять любую категорию, даже если она не определена.
Вот фрагмент моей конфигурации LoggingConfiguration:
<loggingConfiguration name="Logging Application Block" tracingEnabled="true"
defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
...
<categorySources>
<add switchValue="All" name="General">
<listeners>
<add name="Formatted EventLog TraceListener" />
<add name="Email TraceListener" />
</listeners>
</add>
</categorySources>
<specialSources>
<allEvents switchValue="All" name="All Events" />
<notProcessed switchValue="All" name="Unprocessed Category" />
<errors switchValue="All" name="Logging Errors & Warnings">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</errors>
</specialSources>
</loggingConfiguration>
Я пытался установить logWarningsWhenNoCategoriesMatch
в false, но это просто заставляет замолчатьпредупреждение - это не заставляет регистрацию работать.
Я также пытался избавиться от специального источника <notProcessed switchValue="All" .../>
, но, похоже, это тоже не имеет никакого эффекта.
Кто-нибудь знает, есть ли способ заставить это работать?Спасибо!