* 强文 *我有一个启动.Net控制台应用程序(.exe文件)的Windows服务。此控制台应用已启用日志记录,我使用log4Net进行日志记录。如果我单独运行控制台应用程序,则会创建日志文件。但是,如果我从Windows服务启动此控制台应用程序,它不会创建日志文件。
我的日志记录设置如下:
App.config文件:
<?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>
的AssemblyInfo.cs
[assembly: log4net.Config.DOMConfigurator(Watch = true)]
如果我运行控制台应用程序但是如果我将其集成到服务中并将其作为进程运行,则此设置有效,但它不会创建日志文件。我在应用程序中包含应用程序的发布版本,App.config文件和log4Net.dll。
请告诉我如何解决此问题。提前谢谢。
更新
我刚刚在一些测试后意识到Windows服务正确创建了日志文件。问题是我正在创建一个安装程序,在安装时自动启动此服务。那是在没有创建日志文件的时候。我正在使用WiX来创建安装程序。安装程序包含控制台应用程序exe,App.config和运行控制台应用程序的服务。我肯定错过了什么,请告知。