如何以非管理员用户身份运行时让log4net生成日志文件?

时间:2009-10-06 08:42:21

标签: .net logging service log4net program-files

以非管理员用户身份运行的进程无权写入程序文件文件夹。配置log4net以写入非管理员用户有权访问的位置的最佳方法是什么?

理想情况下会有:

  • 代码中的单个配置文件或配置适用于.NET支持的所有MS Windows版本。
  • 支持MS Windows服务
  • 支持log4net版本1.2.0.30714(我们必须使用此版本)

相关问题:

1 个答案:

答案 0 :(得分:3)

为什么不能只将log4net配置为写入您具有适当访问权限的文件夹中的文件?您可以使用FileAppender执行此操作:

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="c:/path/log-file.txt" />
    <appendToFile value="true" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>

以上摘自here。从同一页面:

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="${TMP}\log-file.txt" />
    <appendToFile value="true" />
    <encoding value="unicodeFFFE" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>

您可以使用环境变量来设置文件的路径。