2017-07-03 49 views
1

我有一个带有log4net的windows服务项目。如果我通过installutil.exe安装服务,那么一切正常。我添加Windows安装项目 - 服务启动和工作,但不创建日志文件。Log4net在安装Windows服务之后没有创建日志文件

我的conf

<configSections> 
    <section name="ConnectionInfo" type="Astra.Common.Configuration.ConnectionInfoConfiguration, Astra.Common" /> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=2.0.8, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" /> 
    </configSections> 

...

<log4net> 
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <param name="File" value="Logs\service.log" /> 
     <param name="AppendToFile" value="true" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="5MB" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p %m%n" /> 
     </layout> 

    </appender> 

    <logger name="LOGGER"> 
     <appender-ref ref="LogFileAppender" /> 
    </logger> 
    </log4net> 

public static class Logger 
    { 
     private static ILog log = LogManager.GetLogger("LOGGER"); 


     public static ILog Log 
     { 
      get { return log; } 
     } 

     public static void InitLogger() 
     { 
      XmlConfigurator.Configure(); 
     } 

     static Logger() 
     { 
      InitLogger(); 
     } 
    } 


[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

服务作为网络服务

+1

确保服务帐户可以写入该文件夹。如果是这样,[启用log4net调试](http://haacked.com/archive/2006/09/27/Log4Net_Troubleshooting.aspx/)并检查输出。 – stuartd

+1

另外,请检查服务尝试创建文件的路径 - 以'system32'作为当前目录开始的IIRC windows服务。 – stuartd

+0

@stuartd谢谢!我的服务中的帐户没有权限写入目录 –

回答

2

如果你有一个文件的appender,请确保你写到一个地方用户可以在其中创建和更新文件。如果不是,日志记录将失败。您可以在启用内部调试时进行检查。

相关问题