Ho un'applicazione di servizio Windows 4.0 che utilizza log4net.log4net non registra quando esegue un'applicazione Windows .Net 4.0 incorporata in modalità di rilascio
Ecco la mia configurazione di 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>
registrazione funziona come previsto quando il servizio si avvia mentre si utilizza l'exe che è stato costruito in modalità debug (log file vengono creati nel percorso del file a destra), ma non funziona quando si utilizza l'exe costruito in modalità di rilascio.
Ho provato a utilizzare una dll log4net ricompilata per .Net 4.0 seguendo i passaggi indicati in questo blog .. http://tseonet.blogspot.com/2010/07/making-log4net-run-on-net-40.html.
Ma anche questo non ha funzionato.
Qualsiasi aiuto è molto apprezzato.
Grazie mille Stefan. Questo ha aiutato. Guardando i messaggi di debug di log4net ho potuto vedere che il repository non era configurato poiché log4net non riusciva a trovare la configurazione. L'ordine in cui gli assembly sono stati caricati nelle modalità di debug e release erano diversi. Non sono sicuro se questo è stato il problema qui. – Deepu
Ho potuto vedere che log4net crea il repository predefinito [log4net-default-repository] utilizzando il tipo [log4net.Repository.Hierarchy.Hierarchy] e quindi prova a configurare il repository utilizzando la configurazione se l'assembly è stato decorato con l'attributo [assembly: log4net .Config.XmlConfigurator (Watch = true)]. Nel caso dell'applicazione creata in modalità Release, log4net non ha trovato la configurazione poiché l'assembly caricato non è stato decorato con questo attributo. L'aggiunta di questo attributo al file AssemblyInfo ha risolto il problema. – Deepu