相关疑难解决方法(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万
查看次数

如何在log4net消息中添加类别前缀?

我想为现有日志消息上的所有消息添加类别前缀.但是,将此前缀逐个添加到所有现有日志记录消息中非常繁琐.有没有办法可以在类级别添加一个属性,那么这个类中的所有消息都会记录到某个类别?

而不是现在的方式如下,

Log.Info("[Ref] Level 1 Starts ...");
Run Code Online (Sandbox Code Playgroud)

我真的想要这样或类似的方式来定义log4net.ILog.

[LoggingCategory("Ref")]
public class MyClass 
{
   public void MyMethod()
   {
        Log.Info("Level 1 Starts ...");
   }
}
Run Code Online (Sandbox Code Playgroud)

.net c# logging log4net attributes

7
推荐指数
2
解决办法
5867
查看次数

Log4Net:如何向每个日志行添加简单的索引器(行号)

这是问题:我想在日志文件中的每一行添加行索引器(行号或迭代器).我不需要它对于整个日志文件是唯一的,但仅适用于"应用程序会话"(即每次启动Win32应用程序时,我们开始倒计时:1,2,3等等)

是内置方式(转换模式标记语法)还是一些自定义扩展?

非常感谢!

.net c# logging log4net

3
推荐指数
1
解决办法
4359
查看次数

标签 统计

c# ×3

log4net ×3

logging ×3

.net ×2

asp.net ×1

attributes ×1