2009-08-22 12 views
9

मैं वीएस2005, एक वेबसाइट प्रोजेक्ट, एक वेब परिनियोजन प्रोजेक्ट और लॉग 4नेट का उपयोग कर रहा हूं। जब मैं स्थानीय रूप से विकास कर रहा हूं तो मैं लॉगिंग का उपयोग कर सकता हूं। मैं लॉग फाइल देख सकता हूं और सब कुछ ठीक है। जब मैं अपनी वेबसाइट बनाता हूं, (वेब ​​परिनियोजन प्रोजेक्ट का उपयोग करके), मैं एक एकल डीएलएल विकल्प के रूप में तैनाती का उपयोग करता हूं। जब मैं उन स्थानों की जांच करता हूं जहां मेरी लॉग फाइलें होनी चाहिए, मैं किसी भी फाइल को नहीं देख सकता।Log4Net उत्पादन में लॉग फ़ाइल क्यों नहीं बना रहा है?

क्या समस्या निवारण का कोई तरीका है। मुझे नहीं लगता कि ऐप सेटिंग्स में डीबग वैल्यू जोड़ने से मदद मिलेगी क्योंकि मेरे पास कंसोल नहीं है क्योंकि यह एक वेबसाइट है।

संपादित करें मैं नहीं चाहता कि 150 प्रतिनिधि बर्बाद हो जाएंगे। मैंने अपने देव पर्यावरण से आंतरिक ट्रेस को उत्पादन से ट्रेस तक तुलना की। मेरा देव पर्यावरण ट्रेस एक्सएमएल कॉन्फ़िगरेटर को कॉल करता है जहां उत्पादन कोई नहीं करता है। मेरे पास application_start() विधि पर global.asax में कोड है। मैंने वहां डीबग कोड डाला और इसे देव में बुलाया जा रहा है लेकिन उत्पादन में नहीं।

मुझे लगता है कि यह वह जगह है जहाँ वेब तैनाती परियोजना कुछ समस्या आ रही है। क्या global.asax एकल DLL में संकलित हो जाता है? जब मैं तैनाती निर्देशिका में निर्माण करता हूं तो मुझे एक वैश्विक.com फ़ाइल फ़ाइल दिखाई देती है। यह उत्पादन में बिन फ़ोल्डर में जाना चाहिए? या एकल डीएलएल में global.asax कोड है? बिन फ़ोल्डर या बस डीएलएल में दोनों को कुछ भी नहीं बदला है।

उत्तर

3

मैं इस समस्या मिल गया है। अनुमतियां सही थीं। यह पता चला है कि एक वेब परिनियोजन प्रोजेक्ट का उपयोग रूट में precompliled.config फ़ाइल भी बनाता है। मैंने इसे उत्पादन enivornment में कॉपी नहीं किया था। जैसे ही सबकुछ काम करता था। क्षमा करें किसी को भी बक्षीस नहीं मिला।

1

इस से पहले मुझे क्या हुआ और फ़ाइलों को जहां आवश्यक बनाने के लिए ASPNET उपयोगकर्ता पर अनुमतियों था। क्या यह जांच सकता है कि विंडोज इवेंट लॉग में कुछ भी है या नहीं?

इस तरह की चीज की जांच करने के लिए (हम वॉचर देखते हैं!) हम आउटपुट करते हैं जहां log4net OutputDebugString() via pinvoke. का उपयोग करके इसे लिखकर काम करने जा रहा था। हमने इसे यह सुनिश्चित करने के लिए एक प्रयास में भी रखा है कि हम इसके बारे में त्रुटियों को खोजते हैं क्योंकि सही तरीके से लॉग इन करने में सक्षम होने के लिए इसका उपयोग करना बहुत महत्वपूर्ण है।

7

वर्कर प्रोसेस पर्याप्त विशेषाधिकार लॉग निर्देशिका में लिखने के लिए है करता है? मुझे लगता है कि यह मामला नहीं है। आप निर्देशिका में लिखने के लिए कार्यकर्ता प्रक्रिया समूह अधिकार देना चाहते हैं और देख सकते हैं कि यह आपकी समस्या को हल करता है या नहीं।

+0

कौन-से समूह मैं पर लिखने की अनुमति देना चाहिए। मैंने सोचा कि यह नेटवर्क सेवा थी? – uriDium

+3

मुझे लगता है कि एक स्थानीय समूह, आईआईएस_डब्ल्यूपीजी है, जिसका मैं उपयोग करूंगा। आम तौर पर, इस समूह में कार्यकर्ता प्रक्रियाओं को चलाने वाले किसी भी खाते को रखा जाना चाहिए। समूह का उपयोग करने से आप किसी अन्य कारण से खाता बदलने का निर्णय लेते हैं। साथ ही, यदि आपकी लॉग निर्देशिका वेबसाइट पर है, तो सुनिश्चित करें कि आप इस पर कुछ सुरक्षा स्थापित करें ताकि लोग इसके खिलाफ अनुरोध नहीं कर सकें। – tvanfosson

+0

सलाह के लिए धन्यवाद। क्या कोई ऐसा स्थान है जहां हम इसे पढ़ सकते हैं। मैं सुरक्षा और अनुमतियों के लिए वास्तव में नया हूं। – uriDium

0

चेक की उम्मीद उत्पादन निर्देशिका पर अनुमतियों और सुनिश्चित करें कि वेब सेवा इसे करने के लिए लिख सकते हैं। ऐसा करने का सबसे आसान तरीका filemon.exe (एक SysInternals ऐप) चलाने और उसके अनुसार इसे प्रतिबंधित करना है। यह आपको बताना चाहिए अगर कुछ भी विफल रहता है और आप के रूप में आवश्यक

+0

मैंने फ़ाइल लॉग चलाया है और * लॉग के लिए फ़िल्टर किया है। दिखाई देने वाली एकमात्र फ़ाइल Log4Net की आंतरिक डीबग फ़ाइल थी। यह वांछित लॉग फ़ाइलों को कुछ भी लिखने का प्रयास नहीं किया था। – uriDium

0

यकीन log4net प्राप्त ठीक से विन्यस्त है सुनिश्चित ठीक कर सकते हैं। शायद डीएलएल ठीक है लेकिन कॉन्फ़िगरेशन फ़ाइल गुम है? log4net वहां हो सकता है लेकिन इसमें कोई सक्रिय परिशिष्ट नहीं है।

0

यह सुनिश्चित करने के लिए कि लॉग 4नेट सही तरीके से कॉन्फ़िगर किया गया है, तो मैं एक यूडीपी एपेंडर बनाता हूं जो पोर्ट 90 9 0 पर लॉग करता है। मैं लॉग प्रविष्टियों को देखने के लिए चेनस http://logging.apache.org/chainsaw/index.html का उपयोग करता हूं।

इस आप देख सकते हैं कि कम से कम कुछ लॉग प्रविष्टियों से किया जाता है और लकड़हारा चल रहा है उस के साथ

यूडीपी appender कॉन्फ़िग

<appender name="UdpAppender" type="log4net.Appender.UdpAppender"> 
     <remoteAddress value="localhost" /> 
     <remotePort value="9090" /> 
     <layout type="log4net.Layout.XmlLayoutSchemaLog4j"> 
      <locationInfo value="true" /> 
     </layout> 
</appender> 

Chainsaw एक्सएमएल

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">  
    <plugin name="LocalReceiver" class="org.apache.log4j.net.UDPReceiver"> 
     <param name="Port" value="9090" /> 
    </plugin>  
</log4j:configuration> 
+0

मैंने यह कोशिश की है। कुछ चीजें जो मुझे भ्रमित करती हैं। मेरे पास log4j कॉन्फ़िगरेशन फ़ाइल नहीं है। मैं Log4net का उपयोग कर रहा हूँ। क्या यह अभी भी काम करेगा? अगली बात, मैंने अपनी सेटिंग्स को रखने के लिए अपनी वेब कॉन्फ़िगरेशन फ़ाइल का उपयोग किया (देव में काम करता है)। मैंने बंदरगाह 90 9 0 खोला लेकिन चेनसॉ बंदरगाह 4445 और 4560 पर सुनता प्रतीत होता है। क्या मुझे उपर्युक्त फाइल को कहीं और फाइल में रखना चाहिए? – uriDium

+0

इसके अलावा, एक आखिरी बात, मुझे लगता है कि आप प्लग-इन को अपाचे कक्षा में इंगित करते हैं। क्या मुझे उन कक्षाओं को भी डाउनलोड करना चाहिए या वे वेबस्टार्ट में शामिल हैं? – uriDium

+0

बस दूसरी एक्सएमएल को फ़ाइल के रूप में सहेजें और जैसे ही आप चेनसॉ शुरू करते हैं, आप कॉन्फ़िगरेशन फ़ाइल खोल सकते हैं -> यदि आपको कॉन्फ़िगरेशन फ़ाइल चुनने के लिए कहा नहीं गया है तो आपको अपनी उपयोगकर्ता निर्देशिका में ".chainsaw" निर्देशिका को हटाना होगा । आपको log4j कॉन्फ़िगरेशन की आवश्यकता नहीं है, बस अपने web.config -> का उपयोग करें, लेकिन इस एपेंडर को ऊपर के रूप में कॉन्फ़िगर करें – nWorx

2

यह आपकी समस्या की जड़ की तरह लग रहा है कि Global.asax में Application_Start घटना फायरिंग नहीं है।

वीएस 2005 से विंडोज 2003 में तैनाती करते समय एक "ज्ञात" समस्या है, कि अनुप्रयोग_स्टार्ट आग नहीं है।

Global.asax.cs की सामग्री को डीएलएल में संकलित किया जाएगा। लेकिन एप्लिकेशन_स्टार्ट तब तक नहीं चलेगा जब तक कि ग्लोबल.एक्सएक्स फ़ाइल मौजूद न हो।

यहाँ प्रासंगिक लिंक के एक जोड़े हैं:

http://accidentaltechnologist.com/asp-net/application_start-not-firing-and-the-globalasax/

http://www.velocityreviews.com/forums/t300292-web-deployment-projects-globalasax-problem.html

कुछ अन्य संभावनाओं है कि ऊपर दिए गए लिंक में शामिल कर रहे हैं।

आशा इस मदद करता है

शिराज

4

AssemblyInfo.cs फ़ाइल में इस जोड़े और जाँच

[assembly: log4net.Config.XmlConfigurator(Watch=true)] 
संबंधित मुद्दे