J'ai une application de service Windows 4.0 .Net qui utilise log4net.log4net ne se connecte pas lors de l'exécution d'une application Windows .Net 4.0 intégrée au mode édition
Voici ma configuration log4net.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<appender name="ColorConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="FATAL" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Blue, HighIntensity" />
</mapping>
<mapping>
<level value="INFO" />
<forecolor value="White, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<forecolor value="Green, HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<appendToFile value="true" />
<datePattern value="yyyyMMdd" />
<file value="Logs/Server.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
<maximumFileSize value="10MB" />
<rollingStyle value="Composite" />
<staticLogFileName value="true" />
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ColorConsoleAppender" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
Logging fonctionne comme prévu lorsque le service démarre en utilisant l'exe qui a été construit en mode débogage (fichiers journaux sont créés dans le chemin du fichier à droite), mais ne fonctionne pas quand il utilise l'exe construit en mode de libération.
J'ai essayé d'utiliser une DLL log4net recompilée pour .Net 4.0 en suivant les étapes mentionnées dans ce blog .. http://tseonet.blogspot.com/2010/07/making-log4net-run-on-net-40.html.
Mais, cela n'a pas fonctionné non plus.
Toute aide est grandement appréciée.
Merci beaucoup Stefan. Cela a aidé. En regardant les messages de débogage de log4net, j'ai pu voir que le référentiel n'était pas configuré car log4net n'a pas pu trouver la configuration. L'ordre dans lequel les assemblys ont été chargés dans les modes debug et release était différent. Je ne sais pas si c'était le problème ici. – Deepu
Je pouvais voir que log4net créait le référentiel par défaut [log4net-default-repository] en utilisant le type [log4net.Repository.Hierarchy.Hierarchy] puis essayait de configurer le référentiel en utilisant la configuration si l'assembly était décoré avec l'attribut [assembly: log4net .Config.XmlConfigurator (Watch = true)]. Dans le cas d'une application construite en mode Release, log4net n'a pas pu trouver la configuration car l'assembly chargé n'était pas décoré avec cet attribut. Ajouter cet attribut au fichier AssemblyInfo a résolu le problème. – Deepu