【问题标题】:Change server variable values that are logged in Elmah更改记录在 Elmah 中的服务器变量值
【发布时间】:2019-11-20 12:09:19
【问题描述】:

我在我的应用程序中配置了 Elmah,当我查看错误日志时,我看到在用户部分 Elmah 记录了一个 ID,而不是当前登录的用户名,如下所示。

我想知道是否有一个地方可以更改这些服务器变量的值的设置方式,以便我可以在 Auth_User 变量中输入电子邮件或正确的用户名。查看 Elmah 文档我只能想找出如何过滤掉错误日志,但实际上不知道如何在日志之前更新服务器变量值。

【问题讨论】:

    标签: c# .net webforms elmah


    【解决方案1】:

    我已经写了一篇关于这个的博客文章:Enrich ELMAH errors using error filtering hook

    总而言之,使用 ELMAH 的错误过滤来覆盖记录到 ELMAH 的消息。

    Global.asax.cs添加如下代码:

    void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs args)
    {
        var httpContext = args.Context as HttpContext;
        if (httpContext != null)
        {
            var error = new Error(args.Exception, httpContext);
            error.User = GetUserFromDatabase();
            ErrorLog.GetDefault(httpContext).Log(error);
            args.Dismiss();
        }
    }
    

    如何实现在error 上设置User 属性的行将取决于您的应用程序。但该代码将允许您设置用户名、用户名或电子邮件等内容。

    【讨论】:

    • 太棒了..非常感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 2013-11-13
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多