"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में स्थिर फ़ाइलें परोसने के लिए `http.FileServer` का उपयोग करते समय मैं 404 त्रुटियाँ कैसे लॉग कर सकता हूँ?

गो में स्थिर फ़ाइलें परोसने के लिए `http.FileServer` का उपयोग करते समय मैं 404 त्रुटियाँ कैसे लॉग कर सकता हूँ?

2024-11-19 को प्रकाशित
ब्राउज़ करें:110

How can I log 404 errors when using `http.FileServer` to serve static files in Go?

Http.FileServer के लिए 404 त्रुटियाँ लॉग करना

http.FileServer का उपयोग करके स्थिर फ़ाइलों की सेवा करते समय, जब किसी फ़ाइल के लिए अनुरोध किया जाता है तो लॉग करना अक्सर महत्वपूर्ण होता है जो नहीं करता है अस्तित्व। जबकि http.FileServer स्वयं ऐसी लॉगिंग प्रदान नहीं करता है, इसकी कार्यक्षमता का विस्तार आपको इस लक्ष्य को प्राप्त करने की अनुमति देता है।

http.StripPrefix और http.FileServer द्वारा लौटाए गए हैंडलर को लपेटने के लिए, एक नया http.Handler या http बनाएं। हैंडलरफनक। रैपर रैप किए गए हैंडलर को कॉल करेगा और परिणामी HTTP प्रतिक्रिया स्थिति कोड का निरीक्षण करेगा। यदि यह एक त्रुटि (विशेष रूप से HTTP 404 नहीं मिला) इंगित करता है, तो यह ईवेंट लॉग कर सकता है।

चूंकि http.ResponseWriter प्रतिक्रिया स्थिति कोड को पढ़ने का समर्थन नहीं करता है, इसलिए इसके लिए एक रैपर बनाएं (StatusRespWr)। लिखे जाने पर यह रैपर स्टेटस कोड को संग्रहीत करेगा। { वापसी func(w http.ResponseWriter, r *http.Request) { srw := &StatusRespWr{ResponseWriter: w} h.ServeHTTP(srw, r) यदि srw.status >= 400 {// 400 कोड त्रुटि कोड हैं log.Printf("त्रुटि स्थिति कोड: %d पथ प्रस्तुत करते समय: %s", srw.status, r.RequestURI) } } }

मुख्य फ़ंक्शन फ़ाइल सर्वर बना सकता है, उसे लपेट सकता है, और उसे पंजीकृत कर सकता है:

func wrapHandler(h http.Handler) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        srw := &StatusRespWr{ResponseWriter: w}
        h.ServeHTTP(srw, r)
        if srw.status >= 400 { // 400  codes are error codes
            log.Printf("Error status code: %d when serving path: %s",
                srw.status, r.RequestURI)
        }
    }
}

गैर-मौजूदा फ़ाइल का अनुरोध करते समय, कंसोल में निम्नलिखित आउटपुट उत्पन्न होगा:

2015/12/01 11 :47:40 त्रुटि स्थिति कोड: 404 पथ प्रस्तुत करते समय: /o/sub/b.txt2
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3