Au démarrage, appelez:
XmlConfigurator.Configure();
Dans votre web.config, spécifiez log4net.Config dans appsettings:
<add key="log4net.Config" value="Log.config" />
Ce paramètre spécial vous permet de modifier la configuration du journal sans avoir à recompiler . Particulièrement utile pour se déplacer entre plusieurs environnements.
Exemple
examiner la structure de fichier de projet suivante:
\config\log4net\debug.config
\config\log4net\staging.config
\config\log4net\release.config
\config\appSettings\debug.config
\config\appSettings\staging.config
\config\appSettings\release.config
applications et configurations exploitation sont distingués pour chaque environnement. Les références aux configurations de journalisation sont conservées dans les paramètres de l'application.
\ config \ appsettings \ Debug.config:
<appSettings>
<add key="log4net.Config" value="config\log4net\debug.config" />
...
</appSettings>
\ config \ appsettings \ staging.config:
<appSettings>
<add key="log4net.Config" value="config\log4net\staging.config" />
...
</appSettings>
\ config \ appsettings \ Release.config :
<appSettings>
<add key="log4net.Config" value="config\log4net\release.config" />
...
</appSettings>
Modifier des environnements consiste simplement à mettre à jour le fichier appSettings dans Web.config.
<appSettings file="config\appSettings\staging.config">
...
</appSettings>
C'est un bon point, mais je n'aime vraiment pas cette chose de configuration "magique". Ce que j'ai fait maintenant, est de déclarer trois clés avec des noms de fichiers dans les appSettings de Web.config pour Debug, Stage, Release et utiliser des directives de préprocesseur dans ApplicationStart pour choisir automatiquement la bonne en fonction de la configuration dans laquelle les assemblys ont été déployés. Quelle est votre opinion? Y a-t-il un problème avec cette solution? –
@Martin: J'ai ajouté un exemple à illustrer. Le seul inconvénient de votre solution est l'inflexibilité des versions de build par rapport aux modifications web.config. – Anton
thx, pour vos conseils! –