0

我创建了一个 Windows 服务,我希望 Windows 服务将信息记录到在我的用户配置文件下创建的日志文件中。我正在使用 common.logging,并且在配置中我指定了我的日志配置,如下所示。

<configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
  </configSections>

  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net1213">
        <arg key="configType" value="INLINE" />
      </factoryAdapter>
    </logging>
  </common>

  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %l - %m%n" />
      </layout>
    </appender>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %l - %m%n" />
      </layout>
    </appender>
    <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">
      <file value="${USERPROFILE}\Logs\Log.txt"/>
      <appendToFile value="true"/>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG"/>
        <levelMax value="FATAL"/>
      </filter>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="FileAppender" />      
      <appender-ref ref="EventLogAppender" />
    </root>
  </log4net> 

但是 Windows 服务没有登录到在用户配置文件下创建的日志文件。服务在本地系统帐户下运行。我想在问题上取得领先。事件日志工作正常,只有文件附加程序不工作。

4

1 回答 1

0

正如您所说,该服务已登录到系统帐户,这是一个不同的用户配置文件,具有不同的特殊文件夹路径。处理此问题的最简单方法是将一个符号链接从您的文件夹放到 admin 文件夹。你可以用mklink做到这一点。

于 2015-01-29T15:53:06.257 回答