2008-10-09 21 views
5

मेरे पास लॉगऑनेट मेरे AsP.NET साइट पर चल रहा है। मैं अपने डीबी टेबल पर संदेश लॉग इन करने में सक्षम हूं, लेकिन यह थ्रेडकॉन्टेक्स्ट गुणों को लॉगिंग नहीं कर रहा है। उदाहरण के लिए:log4net लॉगिंग नहीं कर रहा थ्रेडकॉन्टेक्स्ट

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

मेरे log4net.config मेरी एसक्यूएल डीबी तालिका में पैरामीटर के रूप में उन मूल्यों को जोड़ता है:

<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 गुण सेट किया जा रहा है, लेकिन वे नहीं कर रहे ' डीबी में नहीं जा रहा है।

मैं इसे कैसे काम कर सकता हूं?

उत्तर

8

तो, यह पता चला कि कॉन्फ़िगरेशन को दोष देना था।

मूल::

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

परिवर्तित: यह थोड़ा गलत था संपत्ति के अंदर:

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

मैं "log4net" बाहर ले जाने के लिए किया था।

क्या अजीब बात यह है कि एक संपत्ति को अभी भी log4net की आवश्यकता है: propertyName। मुझे बिल्कुल पता नहीं है कि यह इस तरह क्यों काम करता है, लेकिन यह ठीक है कि काम किया!

+0

न तो मेरे लिए उन कार्यों में से एक। परेशान, क्योंकि यह एक% संपत्ति काम करता है {log4net: HostName} –

0

क्या आप उस स्तर पर क्या कर रहे हैं यह देखने के लिए लॉग 4नेट वर्बोज/डीबग/शो एसक्यूएल चालू कर सकते हैं? क्या शायद एक और बिट कॉन्फ़िगरेशन है जो इसे एक साथ बांधने के लिए आवश्यक है?

संबंधित मुद्दे