log4net unique request id in ASP.NET

前端 未结 4 1170
天涯浪人
天涯浪人 2020-12-30 23:24

log4net 1.2.11.0

I am trying to get anything that will allow me to log with a unique value for each ASP.NET request.

I tried %thread, but threads appear to

4条回答
  •  感动是毒
    2020-12-31 00:25

    Here's some extension methods that I created for this purpose:

    public static Guid GetId(this HttpContext ctx) => new HttpContextWrapper(ctx).GetId();
    
    public static Guid GetId(this HttpContextBase ctx)
    {
        const string key = "tq8OuyxHpDgkRg54klfpqg== (Request Id Key)";
    
        if (ctx.Items.Contains(key))
            return (Guid) ctx.Items[key];
    
        var mutex = string.Intern($"{key}:{ctx.GetHashCode()}");
        lock (mutex)
        {
            if (!ctx.Items.Contains(key))
                ctx.Items[key] = Guid.NewGuid();
    
            return (Guid) ctx.Items[key];
        }
    }
    

提交回复
热议问题