Windows services 对于由windows服务启动的exe文件,日志记录不起作用

Windows services 对于由windows服务启动的exe文件,日志记录不起作用,windows-services,log4net,logging,console-application,Windows Services,Log4net,Logging,Console Application,*strong text*我有一个启动.Net控制台应用程序.exe文件的windows服务。此控制台应用程序已启用日志记录,我正在使用log4Net进行日志记录。如果我单独运行console应用程序,则会创建日志文件。但是,如果我从windows服务启动此控制台应用程序,它不会创建日志文件 我的日志设置如下所述: App.config文件: 如果我运行console应用程序,此设置会起作用,但如果我将其集成到服务中并将其作为进程运行,则不会创建日志文件。我在服务中包括应用程序的发布版本、app

*strong text*我有一个启动.Net控制台应用程序.exe文件的windows服务。此控制台应用程序已启用日志记录,我正在使用log4Net进行日志记录。如果我单独运行console应用程序,则会创建日志文件。但是,如果我从windows服务启动此控制台应用程序,它不会创建日志文件

我的日志设置如下所述:

App.config文件:

如果我运行console应用程序,此设置会起作用,但如果我将其集成到服务中并将其作为进程运行,则不会创建日志文件。我在服务中包括应用程序的发布版本、app.config文件和log4Net.dll

请告诉我如何解决这个问题。提前谢谢

更新:


经过一些测试,我才意识到日志文件是由windows服务正确创建的。问题是我正在创建一个安装程序,在安装时自动启动此服务。此时不会创建日志文件。我正在使用WiX创建安装程序。安装程序包含控制台应用程序exe、app.config和运行控制台应用程序的服务。我确信我遗漏了什么,请告知。

您的计算机上是否设置了%envFolderPath%?还是每个会话都设置?一个问题可能是日志是在不同的目录中创建的,因为作为服务启动时可能没有设置所使用的环境变量。@Raam,我在一些测试后更新了我的问题。安装程序运行时是否可能无法正确设置路径?我试图给出一个绝对路径C:\Temp\Mylog.log,但即使这样也不起作用。所以我认为路径不是问题所在。我这里也有同样的问题。你找到答案了吗?好几天来我都被它折磨死了。。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,     log4net" />
</configSections>
<log4net>
 <root>
  <level value="DEBUG" />
  <appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
  <file type="log4net.Util.PatternString" value="%envFolderPath{CommonApplicationData}\LOGS\MyLog.log" />
  <appendtofile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – IDCC.%C{1}.%M - %m%n" />
  </layout>
</appender>
</log4net>
</configuration>
[assembly: log4net.Config.DOMConfigurator(Watch = true)]