"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आइरिस के लिए एक्सेसलॉग मिडलवेयर

आइरिस के लिए एक्सेसलॉग मिडलवेयर

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

AccessLog Middleware for Iris

आइरिस वेब फ्रेमवर्क के लिए एक्सेसलॉग मिडलवेयर आने वाले HTTP अनुरोधों के लिए विस्तृत लॉगिंग प्रदान करता है। यह मिडलवेयर अत्यधिक कॉन्फ़िगर करने योग्य है और कस्टम फ़ील्ड सहित अनुरोध और प्रतिक्रिया के विभिन्न पहलुओं को लॉग कर सकता है।

विशेषताएँ

  • लॉग अनुरोध और प्रतिक्रिया विवरण।
  • कई आउटपुट स्वरूपों (JSON, CSV, कस्टम टेम्पलेट्स) का समर्थन करता है।
  • कई गंतव्यों (फ़ाइलें, स्टडआउट, आदि) पर लॉग इन कर सकते हैं।
  • एसिंक्रोनस लॉगिंग समर्थन।
  • अनुकूलन योग्य लॉग फ़ील्ड।
  • मिडलवेयर को सशर्त रूप से लागू किया जा सकता है।

इंस्टालेशन

एक्सेसलॉग मिडलवेयर का उपयोग करने के लिए, आपको इसे अपने आईरिस एप्लिकेशन में आयात करना होगा:

import (
    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/middleware/accesslog"
)

बुनियादी उपयोग

आईरिस एप्लिकेशन में एक्सेसलॉग मिडलवेयर का उपयोग कैसे करें इसका एक बुनियादी उदाहरण यहां दिया गया है:

package main

import (
    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/middleware/accesslog"
)

func makeAccessLog() *accesslog.AccessLog {
    ac := accesslog.File("./access.log")

    ac.Delim = '|'
    ac.TimeFormat = "2006-01-02 15:04:05"
    ac.Async = false
    ac.IP = true
    ac.BytesReceivedBody = true
    ac.BytesSentBody = true
    ac.BytesReceived = false
    ac.BytesSent = false
    ac.RequestBody = true
    ac.ResponseBody = false
    ac.KeepMultiLineError = true
    ac.PanicLog = accesslog.LogHandler

    ac.SetFormatter(&accesslog.JSON{
        Indent:    "  ",
        HumanTime: true,
    })

    return ac
}

func main() {
    ac := makeAccessLog()
    defer ac.Close()

    app := iris.New()
    app.UseRouter(ac.Handler)

    app.Get("/", func(ctx iris.Context) {
        ctx.WriteString("OK")
    })

    app.Listen(":8080")
}

कॉन्फ़िगरेशन विकल्प

आउटपुट गंतव्य

आप फ़ाइल या नए फ़ंक्शन का उपयोग करके लॉग के लिए आउटपुट गंतव्य सेट कर सकते हैं:

ac := accesslog.File("./access.log")
// or
ac := accesslog.New(os.Stdout)

लॉग प्रारूप

डिफ़ॉल्ट लॉग प्रारूप है:

Time|Latency|Code|Method|Path|IP|Path Params Query Fields|Bytes Received|Bytes Sent|Request|Response|

आप विभिन्न फ़ॉर्मेटर्स का उपयोग करके लॉग प्रारूप को अनुकूलित कर सकते हैं:

JSON फ़ॉर्मेटर

ac.SetFormatter(&accesslog.JSON{
    Indent:    "  ",
    HumanTime: true,
})

सीएसवी फ़ॉर्मेटर

ac.SetFormatter(&accesslog.CSV{})

कस्टम टेम्पलेट फ़ॉर्मेटर

ac.SetFormatter(&accesslog.Template{Text: "{{.Code}}"})

तटकर क्षेत्र

आप लॉग प्रविष्टियों में कस्टम फ़ील्ड जोड़ सकते हैं:

ac.AddFields(func(ctx iris.Context, f *accesslog.Fields) {
    for k, v := range ctx.Request().Header {
        value := strings.Join(v, ", ")
        f.Set("request.header." k, value)
    }
})

अतुल्यकालिक लॉगिंग

प्रदर्शन को बेहतर बनाने के लिए एसिंक्रोनस लॉगिंग सक्षम करें:

ac.Async = true

सशर्त लॉगिंग

आप विशिष्ट मार्गों या शर्तों के लिए लॉगिंग छोड़ सकते हैं:

app.UseRouter(accesslog.SkipHandler)

उन्नत उपयोग

एकाधिक गंतव्यों पर लॉग इन करना

आप io.MultiWriter का उपयोग करके कई गंतव्यों पर लॉग इन कर सकते हैं:

ac.SetOutput(io.MultiWriter(os.Stdout, accesslog.File("./access.log")))

कस्टम घड़ी

आप लॉग टाइमस्टैम्प के लिए एक कस्टम घड़ी सेट कर सकते हैं, जो परीक्षण के लिए उपयोगी है:

ac.Clock = accesslog.TClock(time.Now())

मिडलवेयर इंटीग्रेशन

एक्सेसलॉग मिडलवेयर को अन्य मिडलवेयर के साथ एकीकृत करें:

app.UseRouter(ac.Handler)
app.UseRouter(otherMiddleware)

उदाहरण

JSON फ़ाइल में अनुरोध लॉग करें

ac := accesslog.File("access_log.json")
ac.SetFormatter(&accesslog.JSON{
    Indent:    "  ",
    HumanTime: true,
})
app.UseRouter(ac.Handler)

लॉग रोटेशन का उपयोग करना

अधिक विवरण के लिए लॉग रोटेशन उदाहरण देखें।

कस्टम फ़ील्ड और टेम्पलेट

अधिक विवरण के लिए कस्टम फ़ील्ड और टेम्पलेट उदाहरण देखें।

क्लाइंट को लॉग सुनें और प्रस्तुत करें

अधिक जानकारी के लिए लॉग ब्रोकर उदाहरण देखें।

निष्कर्ष

आईरिस के लिए एक्सेसलॉग मिडलवेयर HTTP अनुरोधों और प्रतिक्रियाओं को लॉग करने के लिए एक शक्तिशाली उपकरण है। अपने लचीले कॉन्फ़िगरेशन विकल्पों और कस्टम फ़ील्ड और प्रारूपों के समर्थन के साथ, इसे किसी भी एप्लिकेशन की आवश्यकताओं को पूरा करने के लिए तैयार किया जा सकता है।

अधिक उदाहरणों और विस्तृत उपयोग के लिए, आधिकारिक आईरिस दस्तावेज़ देखें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/kataras/accesslog-middleware-for-iris-4lhm?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3