【问题标题】:Stop Elmah logging dynamically in ASP.Net MVC在 ASP.Net MVC 中动态停止 Elmah 日志记录
【发布时间】:2019-05-25 10:27:17
【问题描述】:

我通过在我的一个应用程序中使用 this 文章实现了 Elmah 日志记录错误,并且它按预期运行。

现在根据要求,我必须动态停止记录错误,这将由用户处理,用户将运行记录错误或不运行,只需在 web.config 中设置。

但我不知道如何动态停止它,我也阅读了this 文章但我无法停止记录错误。

我有什么遗漏或者我应该改变吗?

【问题讨论】:

    标签: asp.net-mvc elmah error-logging elmah.mvc


    【解决方案1】:

    根据您链接到的 stackoverflow 答案中的建议,您可以从 Web.config 中注释掉 ErrorLog 元素。这不会禁用日志记录(如已接受的答案所建议的那样),而是切换到使用 ELMAH 中的内存记录器。这将在内存中记录所有错误,这不会减慢您的安装速度。如果你想彻底删除错误日志,可以注释掉Web.config中所有与ELMAH相关的模块。

    如果您想要切换,我已在 ELMAH Tutorial 中对此进行了描述。创建新的应用设置:

    <add key="ELMAH:disable" value="false" />
    

    然后在您的Global.asax.cs 文件中添加以下代码:

    void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
    {
        if (bool.Parse(ConfigurationManager.AppSettings["ELMAH:disable"]))
            e.Dismiss();
    }
    

    【讨论】:

    • 感谢您的回答,但从 web.config 中删除所有方法是一项繁琐的工作,如果用户需要,请再次重置。我们有类似设置开关的东西吗?基于此,它也适用于内存和数据库?
    • 没有启用/禁用 ELMAH 的开关。不过,它可以很容易地创建。我已经用可能的解决方案更新了答案。
    • 是的,正是我想要的。我会尝试看看它是否有效。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多