Log4Net 外部配置的相对路径

问题描述 投票:0回答:2

我遇到过这样的情况:我从我的 Web 根配置引用外部 Log4Net 配置文件。但是,我的个人应用程序继承了 Web 根配置,并依次引用外部 Log4Net 配置文件。

如果我有 Log4Net 配置的硬编码路径,那么这一切都可以正常工作。例如:c:\inetpub\wwwroot\logging.config

我想做的是引用此logging.config,而不必指定驱动器号或最好通过相对路径。如果网站现在位于 E:\ 或 D:\ 或 F:\ 驱动器上,这将使切换环境变得容易。

我尝试以这种形式引用该文件:\inetpub\wwwroot\logging.config - 但 Log4Net 似乎没有选择它。

我还考虑过在代码中从 HttpRuntime.AppDomainAppPath 获取驱动器号,但看起来很黑客。

有人想出一种奇特的方法来使用引用路径而不是硬编码路径来引用外部 Log4Net 配置文件吗?

提前感谢很多人的帮助。 :)

configuration log4net relative-path
2个回答
13
投票

我也有同样的问题。我想在我的解决方案中创建一个名为 Logs 的文件夹,并将所有日志放入其中,但如果没有驱动器号,它就无法工作。

我在文件夹名称之前添加了一个反斜杠,删除它后就成功了。

<file value="Logs\RedmineTaskCreator.log" />

只需确保 Logs 文件夹存在即可。我不确定 log4net 是否会创建该文件夹。希望它对你有用。


0
投票

在我的例子中,我在调试器中运行 asp.net,我发现相对日志文件路径是相对于 bin/debug 目录,而不是程序的当前工作目录。但不确定这对 IIS 意味着什么

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.