从启动运行exe时,log4net不会记录日志,但手动启动时可以正常运行

时间:2019-04-23 10:14:37

标签: c# console-application log4net

从注册表启动运行应用程序时,

log4net不会生成日志文件,也不会将日志写入该文件。但是,当手动执行该应用程序时,将创建文件。

在路径“ [HKEY_LOCAL_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run”中创建启动注册表项。当用户登录计算机时,该应用程序必须自动运行。 对于所有日志配置都有单独的log4net.config文件 日志文件在用户漫游配置文件中创建。 尝试过的事情: 1.我尝试保存一些常规路径,例如(C:\ logs \ app),但仍未创建日志。 2.从用户上下文和管理员权限的命令提示符运行.exe,没有用。

Log4net配置

 <log4net>
     <appender name="RollingLogFileAppender" 
       type="log4net.Appender.RollingFileAppender">
     <file value="${APPDATA}\app\app.txt"/>
     <appendToFile value="true" />
     <rollingStyle value="Date"/>
     <rollInterval value="Week"/>
     <DatePattern value="'.'yyyy-MM-dd'.log'"/>
     <rollSizeKB value="50000"/>
     <preserveLogFileNameExtension value="true" />
     <countDirection value="1" />
     <staticLogFileName value="true" />
     <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="[%date{dd MMM yyyy HH:mm:ss}] [%-5level] 
     [%-5.70logger] - %message%newline"/>
     </layout>
    </appender>
    <root>
     <level value="ALL" />
     <appender-ref ref="RollingLogFileAppender" />
    </root>
   </log4net>

初始化配置

log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));

我希望在路径C:\ Users [User] \ AppData \ Roaming \ app \ app.txt中看到一个日志文件”,但它不存在。在这方面的任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

尝试使用日志文件的绝对路径,看看是否有帮助。我在执行exe时手动记录数据时遇到了同样的问题,但是在通过命令提示符运行时却保持沉默。