【发布时间】:2016-02-15 08:03:32
【问题描述】:
默认情况下,Elmah 显然将用户名记录为其日志条目的一部分。我们的客户认为这是明智的数据,并希望将其删除。如何做到这一点?
(顺便说一句:日志中还有“代码”字段。它总是空的。这个字段是什么意思?)
【问题讨论】:
默认情况下,Elmah 显然将用户名记录为其日志条目的一部分。我们的客户认为这是明智的数据,并希望将其删除。如何做到这一点?
(顺便说一句:日志中还有“代码”字段。它总是空的。这个字段是什么意思?)
【问题讨论】:
将以下内容添加到 Global.asax:
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs args)
{
var httpContext = args.Context as HttpContext;
if (httpContext != null && httpContext.Request.User.Identity.IsAuthenticated)
{
var error = new Error(args.Exception, httpContext);
error.User = "***hidden***";
ErrorLog.GetDefault(httpContext).Log(error);
args.Dismiss();
}
}
改编自:http://docs.elmah.io/remove-sensitive-form-data/
编辑
为回答您的其他问题,“代码”字段应为 HTTP 状态代码:500、404 等。
【讨论】:
httpContext.Request.User 不存在。但是解决方案本身效果很好!但我仍然想知道为什么我的 Elmah 日志中的 Code 总是 0。如果是 HTTP 代码,它应该是不同的。