2010-07-30 6 views
0

J'ai fait ce qu'il a été suggéré dans Best way to dynamically set an appender file path pour définir le nom de fichier dynamiquement, en utilisant% property {}, mais le fichier est créé comme "(nul) .log" ci-dessous est le code% propriété ne fonctionne pas avec RollingFileAppender dans log4net

log4net.GlobalContext.Properties["service"] = _servicename.ToString(); 
_flatFileLogger = LogManager.GetLogger("FlatFileLogger"); 
_flatFileLogger.Debug(logData.ToString()); 

J'ai déclaré dans le fichier XML en tant que

file type="log4net.Util.PatternString" value="C:\My_Log\%property{service}.log" 

aide a beaucoup apprécié.

Répondre

2

Assurez-vous de définir la propriété avant pour initialiser log4net.

+0

merci pour la réponse patrick, Je déclare FlatFileLogger au début du programme et l'utiliser comme montré, juste après la propriété% est fixé 1. log4net.GlobalContext.Properties [ « service »] = _servicename.ToString() 2. _flatFileLogger = LogManager.GetLogger ("FlatFileLogger"); 3. _flatFileLogger.Debug (logData.ToString()); la même séquence –

+0

Mais où initialisez-vous le framework log4net? Votre appel à "log4net.Config.XmlConfigurator.Configure()" doit être fait ** après ** la définition de la propriété GlobalContext mais ** avant ** l'accès au logger. – PatrickSteele

+0

Merci Patrick ... En utilisant log4net.Config.XmlConfigurator.Configure() a effectivement résolu le problème .. –

0

Ne confondez pas les enregistreurs et les appenders. La plupart des gens utilisent un enregistreur par classe: De cette façon, vos messages de journal peuvent facilement être mis en relation avec vos cours.

D'autre part, les annexes n'ont rien à voir avec la façon dont votre programme est structuré. Dans votre configuration, vous pouvez dire quels enregistreurs doivent utiliser quels appenders. Cela vous donne une grande flexibilité, que vous n'auriez pas si vous utilisez "appenders" directement dans le code.

Avez-vous un autre enregistreur qui écrit une instruction avant celle que vous avez publiée? Si oui, je suppose que l'appender du fichier est déjà initialisé (avec null dans le nom).

Questions connexes