gpt4 book ai didi

asp.net-mvc-3 - wwwroot 之外的 Elmah logPath

转载 作者:行者123 更新时间:2023-12-01 23:19:08 25 4
gpt4 key购买 nike

我们正在尝试部署我们的项目,但我们无法让 elmah 在 wwwroot 之外创建 xml 日志。它目前正在登录到 inetpub{site}\wwwroot\App_Data 因为那是唯一似乎有效的路径。我们希望将其记录到我们的 inetpub{site}\logs 文件夹中。关于让它工作的任何想法?我们已经尝试过 ..\和 ../文件夹路径,但它们似乎不起作用。

最佳答案

ELMAH logPath 只能在 Web.config 中配置,可以是虚拟路径(如果以“~/”开头)或绝对文件系统路径。 Web.config中ELMAH logPath的默认配置是:

<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" />

但是有一个变通方法如何以编程方式设置 ELMAH logPath:

public class MvcApplication : HttpApplication
{
private static string _elmahDirectory;
private static readonly FieldInfo ElmahLogPathField = typeof(XmlFileErrorLog).GetField("_logPath", BindingFlags.NonPublic | BindingFlags.Instance);

protected void Application_Start()
{
// Assign your path here
_elmahDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
...
}

protected void Application_BeginRequest()
{
var xmlFileErrorLog = (XmlFileErrorLog)Elmah.ErrorLog.GetDefault(HttpContext.Current);
ElmahLogPathField.SetValue(xmlFileErrorLog, _elmahDirectory);
}
}

关于asp.net-mvc-3 - wwwroot 之外的 Elmah logPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873614/

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