Log4Net相对路径到外部配置文件

3
我有这样一种情况,我从Web根配置引用了一个外部的Log4Net配置文件。然而,我的单个应用程序继承了Web根配置,然后引用外部的Log4Net Config文件。如果我有一个硬编码的路径到Log4Net Config(例如:c:\inetpub\wwwroot\logging.config),那么这些都可以很好地工作。
我想做的是引用这个logging.config文件,而无需指定驱动器号或最好使用相对路径。这将使在网站现在存在于E:\,D:\或F:\驱动器的情况下轻松切换环境。
我尝试以这种形式引用文件:\inetpub\wwwroot\logging.config,但Log4Net似乎没有捡起来。
我还考虑通过代码从HttpRuntime.AppDomainAppPath中获取驱动器号,但它似乎太hack'ish。
是否有人想到了一个花哨的方法来使用引用路径而不是硬编码路径来引用外部的Log4Net配置文件?
非常感谢提前任何帮助。 :)

log4net.config和web.config文件是否在同一个文件夹中? 如果是的话,您不需要指定路径。 - nimeshjm
1个回答

12

我有同样的问题。我想在我的解决方案中创建一个名为Logs的文件夹,并把所有日志放在里面,但没有驱动器字母就无法工作。

我在文件夹名称前添加了反斜杠,在去掉它之后就可以了。

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

请确保“Logs”文件夹已存在。我不确定log4net是否会自动创建该文件夹。希望它能对你有用。


3
Ephedra XML不能像C#一样将\作为转义字符进行解释。 - Hans
2
log4net会自动创建文件夹。 - Tonatio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接