gpt4 book ai didi

asp.net - log4net 不记录 ThreadContext

转载 作者:行者123 更新时间:2023-12-02 10:14:46 27 4
gpt4 key购买 nike

我的 AsP.NET 站点上运行着 log4net。我可以将消息记录到我的数据库表中,但它没有记录 ThreadContext 属性。例如:

ThreadContext.Properties["Url"] = HttpContext.Current.Request.Url.ToString();
ThreadContext.Properties["HttpReferer"] = HttpContext.Current.Request.ServerVariables["HTTP_REFERER"];

我的 log4net.config 将这些值作为参数添加到我的 SQL DB 表中:

<parameter>
<parameterName value="@URL"/>
<dbType value="String"/>
<size value="512"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{log4net:Url}"/>
</layout>
</parameter>
<parameter>
<parameterName value="@HttpReferer"/>
<dbType value="String"/>
<size value="512"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{log4net:HttpReferer}"/>
</layout>
</parameter>

当我调试时,我看到那些 ThreadContext 属性正在设置,但它们没有进入数据库。

我怎样才能让它发挥作用?

最佳答案

所以,事实证明配置是罪魁祸首。有点错误:

原文:

<conversionPattern value="%property{log4net:HttpReferer}"/>

更改:

<conversionPattern value="%property{HttpReferer}"/>

我必须取出属性内部的“log4net:”。

奇怪的是,有一个属性仍然需要 log4net:propertyName。我完全不知道为什么会这样,但这就是有效的修复方法!

关于asp.net - log4net 不记录 ThreadContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/187284/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com