加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – log4net没有记录ThreadContext

发布时间:2020-12-16 07:13:47 所属栏目:asp.Net 来源:网络整理
导读:我在我的AsP.NET站点上运行了log4net.我能够将消息记录到我的数据库表,但它没有记录ThreadContext属性.例如: ThreadContext.Properties["Url"] = HttpContext.Current.Request.Url.ToString();ThreadContext.Properties["HttpReferer"] = HttpContext.Curre
我在我的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.我完全不知道它为什么会这样工作,但那是有效的解决方案!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读