重定向log4net登录用户目录

ser*_*hio 16 .net log4net

我有一个使用log4net的程序.它直接记录在exe文件夹中.

现在,当使用Windows> XP(Vista,Seven)传递到工作站时,我发现日志并不总是被创建,因为我想用户权限和其他安全性...

我可以将日志重定向到用户文件夹吗?说

\\ 用户名\MyProgram\Logs

mol*_*anu 19

示例config.xml:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="${USERPROFILE}\MyProgramName\Logs\rolling-log-" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="100KB" />
    <rollingStyle value="Date" />
    <datePattern value="yyyy-MM-dd.'log'" />
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
        <header value="[Log opening]&#13;&#10;" />
        <footer value="[Log closing]&#13;&#10;" />
        <conversionPattern value="%date %-5level %logger - %message%newline" />
    </layout>
</appender>
Run Code Online (Sandbox Code Playgroud)

注释${USERPROFILE}环境变量.


小智 11

而不是${USERPROFILE}(见Moldovanu的回答)你可以使用${LOCALAPPDATA}${APPDATA}.这会将您的日志文件写入用户AppData文件夹(本地或漫游子文件夹).


Joe*_*zer 4

是的,您可以更改默认日志文件位置。在配置中更改file value设置。下面将文件放在 C 的根目录中:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="c:\\log-file.txt"/>
Run Code Online (Sandbox Code Playgroud)

您甚至可以使用环境变量,以下使用名为 TMP 的环境变量:

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="${TMP}\log-file.txt" />
    <appendToFile value="true" />
Run Code Online (Sandbox Code Playgroud)