我希望log4net将日志文件(使用RollingFileAppender)写入公共应用程序数据文件夹的子文件夹(例如C:\ Documents and Settings\All Users\Application Data\Company\Product\Logs).
但是,在Win XP上,没有指定此文件夹的环境变量.我们有%ALLUSERSPROFILE%,%APPDATA%但没有什么比这更好的了%ALLUSERSAPPDATA%.
以编程方式,我可以使用Environment.SpecialFolder.CommonApplicationData,但我需要将它放在log4net配置中,如下所示:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="%ALLUSERSAPPDATA%\Company\Product\Logs\error.log" />
</appender>
Run Code Online (Sandbox Code Playgroud)
好的,我们可以在我们的设置中定义这个,但也许有人提出了一个更好的主意?
这里讨论了异常日志应该去的问题一次或两次(或更多),其中一个建议是应用程序永远不应该写入安装文件夹.
但是,如果我将日志放在%appdata%中,这意味着每个用户都有自己的日志集.我更喜欢将所有日志放在一个位置.
在最后一个MSDN mag问题中,在安装文件夹中有一个单独的日志子文件夹(例如%programfiles\myapp\logs)被称为规则中的有效异常.当然,必须相应地设置此文件夹的ACL.
在安装文件夹中有一个日志文件夹常见的做法还是绝对禁止?你把你的例外日志放在哪里?
编辑:
事实上,我们使用的是log4net,因此日志记录的位置和类型是完全可配置的.但是,我希望有一个合理的默认值.我更喜欢在事件日志上有一个文件.对于大多数用户而言,文件比事件日志更容易处理.
但是,我们假设我想拥有文件.在安装文件夹中有一个日志文件夹可以吗?