安装Windows服务后,Log4net不会创建日志文件

时间:2017-07-03 15:30:29

标签: c# windows-services log4net

我有一个带有log4net的Windows服务项目。如果我通过installutil.exe安装该服务,那么一切正常。我添加了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)]

作为NetworkService服务

1 个答案:

答案 0 :(得分:2)

如果您有文件追加器,请确保您写入允许用户创建和更新文件的位置。如果不是,则日志记录将失败。启用内部调试后,可以检查此项。