मैं अपने एएसपी.NET वेब साइट के लॉग संदेशों को लॉग इन करने के लिए log4net का उपयोग कर रहा हूं, और हाल ही में मैं पेज/हैंडलर के बारे में जानकारी जोड़ना चाहता था जहां त्रुटि हुई। इसलिए मैं Global.asax में निम्न पंक्ति जोड़ने का निर्णय लिया:एएसपी.NET अनुरोध के लिए विशिष्ट log4net संदर्भ गुण कैसे सेट करें?
void Application_BeginRequest(object sender, EventArgs e)
{
log4net.ThreadContext.Properties["page"] = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;
}
और की तरह बुद्धिमान मैंने अपना रूपांतरण पैटर्न के लिए %property{page}
कहा:
<conversionPattern value="%newline%date %-5level %property{page} - %message%newline%newline%newline" />
यह एकल अनुरोधों के लिए ठीक काम किया। लेकिन फिर मैंने अपने लॉग में देखा कि पृष्ठ संपत्ति एएसपी.NET अनुरोध के दौरान बदल सकती है। मैंने एक एएसएचएक्स हैंडलर में लॉगिंग कर ली है, और इसके प्रसंस्करण के बीच में, पृष्ठ की संपत्ति एक अलग मूल्य में बदल जाएगी जो एएसपीएक्स पेज को इंगित करती है। मैंने निष्कर्ष निकाला कि एएसपी.नेट पर एक और अनुरोध आ रहा है और इसके BeginRequest
को निष्पादित किया गया है और log4net.ThreadContext
में स्थिर पृष्ठ संपत्ति को दूसरे मान में बदल दिया गया है।
अब, मैं प्रति अनुरोध पृष्ठ संपत्ति को बनाए रखना चाहता हूं, ताकि मेरे पास लगातार लॉग इन करने वाले निष्पादन पृष्ठ का मार्ग हो। मैंने जवाब खोजने की कोशिश की, लेकिन मैं कुछ भी नहीं मिला। इस समस्या को हल करने के लिए अनुशंसित तरीका क्या है? मुझे यकीन है कि यह वेब सर्वर इवेंट लॉगिंग की बहुत ही बुनियादी कार्यक्षमता है।
यह प्रतिभा है। –