【发布时间】:2017-07-09 05:32:19
【问题描述】:
我一直在尝试将 ELMAH 集成到我的应用程序中,这是一个后端调用 API 的网站。到目前为止,这很容易,现在我正在尝试使用它的数据库功能。它在我的数据库中插入行没有问题,但是当它通过 API 的源代码时,用户列变为空。有没有办法在每次 ELMAH 插入新行时手动添加用户数据?
【问题讨论】:
标签: sql sql-server logging elmah
我一直在尝试将 ELMAH 集成到我的应用程序中,这是一个后端调用 API 的网站。到目前为止,这很容易,现在我正在尝试使用它的数据库功能。它在我的数据库中插入行没有问题,但是当它通过 API 的源代码时,用户列变为空。有没有办法在每次 ELMAH 插入新行时手动添加用户数据?
【问题讨论】:
标签: sql sql-server logging elmah
首先,我不明白为什么人们一直反对这个问题。将用户设置为所有 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();
}
}
【讨论】: