在ELMAH中手动插入用户

时间:2017-02-20 03:38:01

标签: sql sql-server logging elmah

我一直在尝试将ELMAH集成到我的应用程序中,这是一个后端称为API的网站。到目前为止它很容易,现在我正在尝试使用它的数据库功能。它在我的数据库中插入行没有任何问题,但是当它通过API的源代码时,User列变为null。有没有办法在每次ELMAH插入新行时手动添加用户数据?

1 个答案:

答案 0 :(得分:0)

首先,我不明白为什么人们会继续低估这个问题。在所有ELMAH错误上设置用户是一个非常有效的问题,可以通过使用错误过滤来实现,如我的博客文章中所述:Enrich ELMAH errors using error filtering hook

总而言之,您需要实施ErrorLog_Filtering方法并手动设置User属性:

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();
    }
}