相关疑难解决方法(0)

使用log4net捕获用户名

我目前将所有log4net事件写入数据库,它似乎工作正常.要捕获登录的用户帐户,我使用以下代码:

HttpContext context = HttpContext.Current;
if (context != null && context.User != null && context.User.Identity.IsAuthenticated)
{
    MDC.Set("user", HttpContext.Current.User.Identity.Name);
}
Run Code Online (Sandbox Code Playgroud)

代码似乎没问题,除了没有与之关联的用户上下文的事件(即我们公共网页上的用户).在这种情况下,log4net捕获似乎有时写入最后登录的用户帐户(坏),有时写入空(好).任何人都有这个功能在所有情况下都可靠地工作?我相信我看到一条说明MDC不再是推荐使用的功能,但我无法找到任何推荐的替代品.

注意:我发现MDC设置了帐户名称很奇怪,但如果没有用户处于活动状态,则永远不会清除.这可能是问题的一部分.但是,我没有找到任何也清除用户名的MDC代码提取.

c# asp.net logging log4net

19
推荐指数
3
解决办法
2万
查看次数

标签 统计

asp.net ×1

c# ×1

log4net ×1

logging ×1