I have a console application that I convert to a Windows service. As a console application, log4net is working fine. But turning it into a Windows service, the log4net log stops working.
I added this to my assemblyInfo.cs in the service project:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
This is my class of service with onstart and onstop:
private static log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); private Builder _builder; public YCSWebServerService() { InitializeComponent(); _builder = new Builder(); } protected override void OnStart(string[] args) { _log.Info("YCSWebServerService started"); _builder.Start(); } protected override void OnStop() { _log.Info("YCSWebServerService stopped"); _builder.Stop(); }
I have a "specific" log4net configuration file added to my service project:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <root> <level value="ALL" /> <appender-ref ref="EventLogAppender" /> </root> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <threshold value="DEBUG" /> <applicationName value="Lantic YCS WebServer" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="(%-5level %date{hh}:%date{mm}:%date{ss} [%thread] %logger [%property{NDC}] ) %message %n" /> </layout> </appender> </log4net> </configuration>
Any ideas or tips?
c # logging windows-services
lmkk
source share