आइरिस वेब फ्रेमवर्क के लिए एक्सेसलॉग मिडलवेयर आने वाले HTTP अनुरोधों के लिए विस्तृत लॉगिंग प्रदान करता है। यह मिडलवेयर अत्यधिक कॉन्फ़िगर करने योग्य है और कस्टम फ़ील्ड सहित अनुरोध और प्रतिक्रिया के विभिन्न पहलुओं को लॉग कर सकता है।
एक्सेसलॉग मिडलवेयर का उपयोग करने के लिए, आपको इसे अपने आईरिस एप्लिकेशन में आयात करना होगा:
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|
आप विभिन्न फ़ॉर्मेटर्स का उपयोग करके लॉग प्रारूप को अनुकूलित कर सकते हैं:
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)
ac := accesslog.File("access_log.json") ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, }) app.UseRouter(ac.Handler)
अधिक विवरण के लिए लॉग रोटेशन उदाहरण देखें।
अधिक विवरण के लिए कस्टम फ़ील्ड और टेम्पलेट उदाहरण देखें।
अधिक जानकारी के लिए लॉग ब्रोकर उदाहरण देखें।
आईरिस के लिए एक्सेसलॉग मिडलवेयर HTTP अनुरोधों और प्रतिक्रियाओं को लॉग करने के लिए एक शक्तिशाली उपकरण है। अपने लचीले कॉन्फ़िगरेशन विकल्पों और कस्टम फ़ील्ड और प्रारूपों के समर्थन के साथ, इसे किसी भी एप्लिकेशन की आवश्यकताओं को पूरा करने के लिए तैयार किया जा सकता है।
अधिक उदाहरणों और विस्तृत उपयोग के लिए, आधिकारिक आईरिस दस्तावेज़ देखें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3