gpt4 book ai didi

log4net - 我应该如何配置 log4net 以写入 Windows XP 和 7 上的 %LOCALAPPDATA%?

转载 作者:行者123 更新时间:2023-12-02 18:38:36 24 4
gpt4 key购买 nike

我有一个内部应用程序,它使用 log4net 进行日志记录。我希望在 %LOCALAPPDATA%\Vendor\App\application.log 处生成日志。不幸的是,log4net 正在 %APPDATA% 创建日志文件。这不是一个大问题,因为我们确实不使用这里描述的漫游,但如果可以避免的话,我不喜欢在代码中留下一些特质。

关于如何在不以编程方式配置 log4net 并使用 pinvoke 获取 XP 路径的情况下将文件写入我指定的位置,有什么想法吗?

这是我的配置文件的附加部分(如果有帮助的话):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="${LOCALAPPDATA}\Vendor\App\application.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" />
</layout>
</appender>

最佳答案

参加这里的聚会已经很晚了,但我刚刚发现了这个并找到了答案。

看来你可以使用log4net.Util.PatternString将环境变量插入文件路径。所以OP的例子就变成了:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%env{LOCALAPPDATA}\Vendor\App\application.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" />
</layout>
</appender>

type="log4net.Util.PatternString" 添加到文件元素,然后指定 %env 模式说明符,后跟大括号中的环境变量名称。

关于log4net - 我应该如何配置 log4net 以写入 Windows XP 和 7 上的 %LOCALAPPDATA%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15097591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com