2009-09-25 7 views
7

Comment puis-je obtenir le nom du fichier journal dans le code? (Je peux l'imprimer à la console)Comment puis-je obtenir le nom du fichier journal via le code?

Mon fichier journal est définit comme celui-ci dans app.config:

<appender name="RollingLogFileAppender" 
    type="log4net.Appender.RollingFileAppender"> 
     <file value="logfile" /> 
    ... 

Répondre

8

Vous regardez votre LogManager.GetAllRepositories. Dans les dépôts, vous regardez tous les appenders dans ILoggerRepository.GetAppenders. Si l'appender est de type RollingFileAppender vous vérifiez sa propriété File, ou si vous préférez vous pouvez vérifier l'appender par Name. Cela étant dit, il est très mauvais de faire quelque chose comme ça dans votre code. Que faire si la configuration est modifiée au moment du déploiement et que l'appender que vous attendez n'est plus présent?

+0

Eh bien, je peux vérifier null valeurs. Que diriez-vous de lire le app.config en quelque sorte? – User

+0

consultez l'exemple sur http://msdn.microsoft.com/en-us/library/system.configuration.configuration.getsection.aspx pour savoir comment lire vos propres sections de configuration. Je recommanderais cependant, il le fait. –

+0

Je voudrais imprimer sur la console où le fichier journal est pour plus de commodité. Tout moyen de le faire, vous suggérer? – User

0

voir la propriété Fichier de cette.

Log est l'instance de ILog

((log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl) Log.Logger) .Appenders.OfType(). FirstOrDefault(). Fichier

Questions connexes