Я думаю, что log4net делает все, что вы указали для меня.
Подключаемые слушатели звучат как приставки - их много, и на самом деле я даже взломал скользящий файл журнала, который всегда заканчивается на .log (для ассоциаций файлов), добавлен поле cc в приложение электронной почты и, наконец, настроен мои любимые значения для цветного консольного приложения. Если я могу быть настолько смелыми - мои цветные консоли счастья:
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- Can Use:
Blue
Green
Red
White
Yellow
Purple
Cyan
HighIntensity
-->
<mapping>
<level value="FATAL" />
<foreColor value="Yellow, HighIntensity" />
<backColor value="Red" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Purple, HighIntensity" />
</mapping>
<mapping>
<level value="WARN" />
<backColor value="Blue" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="INFO" />
<backColor value="Green" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="White" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />-->
<!--<conversionPattern value="%-5level %file:%line - %message%newline" />-->
<conversionPattern value="%level %logger:%line %newline %message%newline" />
</layout>
Настраиваемый след выключатели: Log4Net поставляется только с FATAL ERROR WARN INFO DEBUG в порядке возрастания многословием. Единственное, что я действительно пропустил, - это AUDIT для тех, кто сделал-что записывал.
Настраиваемая конфигурация: Я использую файл log4net.config который я загрузить во время выполнения (или записи журнала в C:. \ Ныть, что я не могу найти конфигурации)
Try
' Get log4net configuration from file
Dim logConfigFile As FileInfo
logConfigFile = New FileInfo(".\log4net.config")
If logConfigFile.Exists Then
XmlConfigurator.Configure(logConfigFile)
Else
CreateEmergenceLogFile(logConfigFile.FullName)
End If
Catch ex As Exception
Console.Out.WriteLine("Could not load the log4net config file")
End Try
просто большой набор TraceListeners: извините, пропустив этот, я возьму ваше слово.
Соотношение действий/областей: вы имеете в виду, что каждый файл (класс чтения) получает собственный журнал имен, который может иметь отдельные пороги уровня журнала. На самом деле вы можете каротаж сегмент даже в одном классе (что на самом деле, возможно, выросли сделать слишком много ...)
В файле класса:
Private Shared _logger As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Private Shared _loggerAttribute As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName & ".Attribute")
Private Shared _loggerCache As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName & ".Cache")
The Service Трассировка просмотра: в log4net .config:
<logger name="NipissingU.ADWrapper.EntryTools.Attribute">
<level value="INFO" />
</logger>
<logger name="NipissingU.ADWrapper.EntryTools.Cache">
<level value="WARN" />
</logger>
Все это настраивается в app.config/web.config: ну, может быть, что это хорошая вещь в ASP.NET, я не знаю, но когда делает богатый клиент боба счетных приложений Мне нравится отдельный файл конфигурации.
Все здесь - только мои собственные небольшие трюки.
НТН, -Mike
Я нашел этот вопрос достойным SO, а также нашел несколько ответов, чтобы быть достаточно информативным, чтобы больше не искать больше информации. Тот, кто закрыл этот вопрос как «неконструктивный», я задаю вопрос, было ли это сделано из-за предвзятости к log4net и общего недовольства линией ответов. Этот вопрос и многие ответы помогают прояснить страх, неопределенность, сомнения и простые дезинформации, связанные как с log4net, так и с трассировкой .NET. –
Я также нашел этот вопрос полезным. И на самом деле точно соответствует тому, что я искал. – Darkonekt