2017-07-03 47 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,請確保你寫到一個地方用戶可以在其中創建和更新文件。如果不是,日誌記錄將失敗。您可以在啓用內部調試時進行檢查。

相關問題