Log4net:当应用程序在Win8中运行时,没有写入日志,而没有;“作为管理员”;

Log4net:当应用程序在Win8中运行时,没有写入日志,而没有;“作为管理员”;,log4net,Log4net,我们的应用程序使用log4net通过RollingFileAppender将一些日志写入本地磁盘。在我们使用虚拟机中的远程桌面连接进行测试之前,它在本地开发机器中运行良好 在Win8中安装之后,我们必须以管理员身份运行它,以便让它写入日志。即使我们使用win8的本地管理员帐户登录远程win8 win7中的情况有所不同。即使我们使用域用户登录远程win7,应用程序也总是写入日志。也许您对配置文件感兴趣,让我把它放在这里: <log4net> <appender name="Rol

我们的应用程序使用log4net通过RollingFileAppender将一些日志写入本地磁盘。在我们使用虚拟机中的远程桌面连接进行测试之前,它在本地开发机器中运行良好

在Win8中安装之后,我们必须以管理员身份运行它,以便让它写入日志。即使我们使用win8的本地管理员帐户登录远程win8

win7中的情况有所不同。即使我们使用域用户登录远程win7,应用程序也总是写入日志。也许您对配置文件感兴趣,让我把它放在这里:

<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="c:\mylogfile.txt"/>
  <appendToFile value="true"/>
  <rollingStyle value="Size"/>
  <maxSizeRollBackups value="5"/>
  <maximumFileSize value="10MB"/>
  <staticLogFileName value="true"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
  </layout>
</appender>
<root>
  <level value="Debug"/>
  <appender-ref ref="RollingFileAppender"/>
</root>


您的用户没有写入c:\mylogfile.txt的权限。创建一个目录c:\temp并尝试登录到c:\temp\mylogfile.txt

<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="c:\temp\mylogfile.txt"/>
  <appendToFile value="true"/>
  <rollingStyle value="Size"/>
  <maxSizeRollBackups value="5"/>
  <maximumFileSize value="10MB"/>
  <staticLogFileName value="true"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
  </layout>
</appender>
<root>
  <level value="Debug"/>
  <appender-ref ref="RollingFileAppender"/>
</root>

非常感谢您的快速回复。你指出的其实是对的。但是,配置文件是一个初始配置,我们可以在运行时更新它。最后,我犯了一个错误:我试图在非管理员用户没有写访问权的安装路径下更新并保存配置文件。配置文件未正确保存,并且没有在需要的位置写入日志。