Ведение журнала корпоративной библиотеки - всегда ведение журнала с использованием defaultCategory и без учета categorySources, определенных в web.config
MSEL 5 работал для нас как прелесть, но в последнее время я пытался настроить дополнительные "categorySources", но результат всегда одинаков. Запись в журнале всегда выполняется с использованием "defaultCategory", и в файле журнала регистрируется следующая ошибка: "Сообщение: явного сопоставления для категорий" AppLogGen "не существует. Запись журнала была:"
Запись web.config "loggingConfiguration"
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="AppLog">
<listeners>
<add name="Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\LoggingTrace\trace.log" formatter="Text Formatter"
rollFileExistsBehavior="Increment" rollInterval="Midnight" rollSizeKB="10000"
timeStampPattern="dd-MM-yyyy" traceOutputOptions="None" filter="All" />
<add name="Flat File Trace Listener Login" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\LoggingTrace\traceLogin.log" formatter="Text Formatter Login"
rollFileExistsBehavior="Increment" rollInterval="Midnight" rollSizeKB="10000"
timeStampPattern="dd-MM-yyyy" traceOutputOptions="None" filter="All" />
</listeners>
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="Format 1:: Timestamp: {timestamp(local)}{newline}
Message: {message}{newline}
Category: {category}{newline}
"
name="Text Formatter" />
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="Format 2:: Timestamp: {timestamp(local)}{newline}
Message: {message}{newline}
Category: {category}{newline}
"
name="Text Formatter Login" />
</formatters>
<categorySources>
<add switchValue="All" name="InfinityWeb">
<listeners>
<add name="Flat File Trace Listener" />
</listeners>
</add>
<add switchValue="All" name="AppLog">
<listeners>
<add name="Flat File Trace Listener Login" />
</listeners>
</add>
<add switchValue="All" name="AppLogGen">
<listeners>
<add name="Flat File Trace Listener Login" />
</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="Flat File Trace Listener" />
</listeners>
</errors>
</specialSources>
Код, запись в файл журнала
//logWriter.Write(message, category, priority, eventId, (TraceEventType)severity, DefaultTitle, null);
LogEntry logEntry = new LogEntry();
logEntry.Categories.Add("AppLogGen");
logEntry.Message = "Override " + message;
logWriter.Write(logEntry);
Результат в файле журнала
Timestamp: 9/6/2012 1:15:23 PM
Сообщение: не существует явного сопоставления для категорий "AppLogGen". Запись в журнале была:
Метка времени: 9.09.2012 7:45:23
Сообщение: Переопределение входа успешно для UserId:Admin
Категория: AppLogGen
Серьезность: Информация Категория: AppLog .,, Расширенные свойства:
Независимо от того, что я делаю, при ведении журнала всегда используется источник категории, указанный в defaultCategory. Уже провел два дня на этом. Помогите!
1 ответ
<allEvents switchValue="All" name="All Events" />
<listeners>
<add name="Flat File Trace Listener" />
</listeners>
Эти строки кода имеют проблему. Слушатель "Flat File Trace" является слушателем по умолчанию для всех событий. поэтому любое событие будет прослушиваться по умолчанию. Вы должны проверить, комментируя этого слушателя.