首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4net不记录ThreadContext

log4net不记录ThreadContext
EN

Stack Overflow用户
提问于 2008-10-09 13:40:38
回答 2查看 4.1K关注 0票数 6

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

代码语言:javascript
复制
ThreadContext.Properties["Url"] = HttpContext.Current.Request.Url.ToString();
ThreadContext.Properties["HttpReferer"] = HttpContext.Current.Request.ServerVariables["HTTP_REFERER"];

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

代码语言:javascript
复制
<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属性正在被设置,但是它们没有进入数据库。

我怎么才能让它工作呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-10-09 19:08:31

所以,事实证明是配置造成的。这是一个小错误:

原件:

代码语言:javascript
复制
<conversionPattern value="%property{log4net:HttpReferer}"/>

已更改:

代码语言:javascript
复制
<conversionPattern value="%property{HttpReferer}"/>

我不得不去掉属性中的"log4net:“。

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

票数 10
EN

Stack Overflow用户

发布于 2008-10-09 14:09:41

您可以打开/debug/show log4net来查看它在该级别上所做的工作吗?有没有可能需要另外一点配置来把这一切联系在一起?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/187284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档