Je pense que log4net est en train de faire tout ce que vous répertoriées pour moi.
Enfichable auditeurs sonne comme appenders - il y en a beaucoup et en fait j'ai même piraté les rolling fichier journal pour toujours à la fin .journaux (pour des associations de fichiers), ajout d'un champ cc pour l'e-mail appender, et finalement, à l'écoute de mes préférés valeurs de la couleur de la console appender.
Si j'ai peut-être l'audace de - ma de couleur de la console de bonheur:
<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>
Personnalisable trace de commutateurs: Log4net est livré uniquement avec ERREUR FATALE AVERTIR les INFOS de DEBUG dans le but d'augmenter le niveau de verbosité. Le seul que j'ai réellement manquer de VÉRIFICATION pour qui-fait-ce que l'exploitation forestière.
Personnalisable configuration: j'ai utiliser un log4net.fichier de config qui je charge au moment de l'exécution (ou d'écrire un journal sur c:\ pleurnicher que je ne trouve pas le fichier config.)
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
juste un grand ensemble de TraceListeners: désolé ignorant que je vais prendre votre parole.
La corrélation des activités/domaines d'application: voulez-vous dire comme à chaque fichier (lire en classe) obtient son propre nommé journal qui peut avoir séparé le niveau de journal des seuils. En fait, vous pouvez segment de la journalisation même dans une seule classe (qui en vérité ont augmenté de trop en faire ...)
Dans un fichier de classe:
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")
La Visionneuse de Trace de Service: dans le log4net.config:
<logger name="NipissingU.ADWrapper.EntryTools.Attribute">
<level value="INFO" />
</logger>
<logger name="NipissingU.ADWrapper.EntryTools.Cache">
<level value="WARN" />
</logger>
Le tout est configurable via l'application.config/web.config: bien, peut-être que c'est une bonne chose en ASP.NET je ne sais pas, mais lors de la prise de client riche bean comptage des applications que j'aime séparé fichier de configuration.
Tout ici n'est que ma propre petite astuces d'utilisation.
hth,
-Mike