लॉगर

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

इंटरफ़ेस

func New(config ...Config) fiber.Handler

उदाहरण

फाइबर वेब फ़्रेमवर्क के मिडलवेयर पैकेज को इम्पोर्ट करें:

import (
    "github.com/gofiber/fiber/v2"
    "github.com/gofiber/fiber/v2/middleware/logger"
)

नोट: पंजीकरण का क्रम महत्वपूर्ण है। केवल इस मिडलवेयर के बाद पंजीकृत रूट लॉग किया जाएगा। इसलिए, यह मिडलवेयर पंजीकृत होना चाहिए।

फाइबर ऐप्लिकेशन को शुरू करने के बाद, निम्नलिखित तरीकों से मिडलवेयर को पंजीकृत करना संभव है:

// डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ प्रारंभ करें
app.Use(logger.New())

// या कस्टमाइज कॉन्फ़िगरेशन
// रिमोट आईपी और पोर्ट लॉग करें
app.Use(logger.New(logger.Config{
    Format: "[${ip}]:${port} ${status} - ${method} ${path}\n",
}))

// अनुरोध आईडी लॉग करें
app.Use(requestid.New())
app.Use(logger.New(logger.Config{
    // अधिक विकल्पों के लिए, कॉन्फ़िग खंड देखें
    Format: "${pid} ${locals:requestid} ${status} - ${method} ${path}\n",
}))

// समय क्षेत्र और समय प्रारूप बदलें
app.Use(logger.New(logger.Config{
    Format:     "${pid} ${status} - ${method} ${path}\n",
    TimeFormat: "02-जनवरी-2006",
    TimeZone:   "America/New_York",
}))

// कस्टम फ़ाइल राइटर जोड़ें
file, err := os.OpenFile("./123.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
    log.Fatalf("फाइल खोलने में त्रुटि: %v", err)
}
defer file.Close()
app.Use(logger.New(logger.Config{
    Output: file,
}))

// कस्टम टैग जोड़ें
app.Use(logger.New(logger.Config{
    CustomTags: map[string]logger.LogFunc{
        "कस्टम_टैग": func(आउटपुट logger.Buffer, c *fiber.Ctx, data *logger.Data, extraParam string) (int, error) {
            return आउटपुट.WriteString("यह एक कस्टम टैग है")
        },
    },
}))

// लॉगिंग के बाद कॉलबैक फ़ंक्शन
app.Use(logger.New(logger.Config{
    TimeFormat: time.RFC3339Nano,
    TimeZone:   "Asia/Shanghai",
    Done: func(c *fiber.Ctx, logString []byte) {
        if c.Response().StatusCode() != fiber.StatusOK {
            reporter.SendToSlack(logString) 
        }
    },
}))

// डिफ़ॉल्ट फ़ार्मेट में आउटपुट करते समय रंगों को निष्क्रिय करें
app.Use(logger.New(logger.Config{
    DisableColors: true,
}))

कॉन्फ़िगरेशन

संपत्ति प्रकार विवरण डिफ़ॉल्ट मूल्य
Next func(*fiber.Ctx) bool नेक्स्ट एक समीक्षा कार्य को परिभाषित करता है जो जब यह true लौटाता है तो मिडलवेयर को छोड़ देता है। nil
Done func(*fiber.Ctx, []byte) Done एक फ़ंक्शन है जो अभियान के लॉग स्ट्रिंग को आउटपुट में लिखने के बाद कॉल किया जाता है, जिसमें अभियान स्ट्रिंग पैरामीटर के रूप में पास किया जाता है। nil
CustomTags map[string]LogFunc tagFunctions कस्टम टैग कार्यों को परिभाषित करता है। map[string]LogFunc
Format string फ़ार्मेट लॉग टैग को परिभाषित करता है। [${time}] ${status} - ${latency} ${method} ${path}\n
TimeFormat string TimeFormat लॉग समय छंद को परिभाषित करता है। 15:04:05
TimeZone string TimeZone को "UTC", "America/New_York", "Asia/Chongqing", आदि के रूप में निर्दिष्ट किया जा सकता है। "स्थानीय"
TimeInterval time.Duration टाइमइंटरवल समय अवधि पहले समय को अपडेट करने के लिए होती है। 500 * time.Millisecond
Output io.Writer Output लॉग लिखने के लिए उपयोग किया जाने वाला लेखक है। os.Stdout
DisableColors bool अंदरूनी रंगों की लॉग आउट को रंगीन बनाना चाहिए या नहीं इसे निर्धारित करता है। फॉल्स
enableColors bool लॉग आउट में रंग सक्षम करने के लिए आंतरिक क्षेत्र। (यह सम्पादनयोग्य फ़ील्ड नहीं है) -
enableLatency bool लॉग में ल्याटेंसी मापन सक्षम करने के लिए आंतरिक क्षेत्र। (यह सम्पादनयोग्य फ़ील्ड नहीं है) -
timeZoneLocation *time.Location समय क्षेत्र स्थान के लिए आंतरिक क्षेत्र। (यह सम्पादनयोग्य फ़ील्ड नहीं है) -

डिफ़ॉल्ट कॉन्फ़िगरेशन

var ConfigDefault = Config{
    Next:          nil,
    Done:          nil,
    Format:        "[${time}] ${status} - ${latency} ${method} ${path}\n",
    TimeFormat:    "15:04:05",
    TimeZone:      "स्थानीय",
    TimeInterval:  500 * time.Millisecond,
    Output:        os.Stdout,
    DisableColors: false,
}

स्थिर

// लॉगर संबंधित वेरिएबल्स
const (
    TagPid               = "pid"               	// प्रक्रिया आईडी
    TagTime              = "time"              	// समय
    TagReferer           = "referer"           	// संदर्भ
    TagProtocol          = "protocol"          	// प्रोटोकॉल
    TagPort              = "port"              	// पोर्ट
    TagIP                = "ip"                	// आईपी पता
    TagIPs               = "ips"               	// आईपी पते
    TagHost              = "host"              	// होस्ट
    TagMethod            = "method"            	// अनुरोध विधि
    TagPath              = "path"              	// पथ
    TagURL               = "url"               	// यूआरएल
    TagUA                = "ua"                	// उपयोगकर्ता एजेंट
    TagLatency           = "latency"           	// लेटेंसी
    TagStatus            = "status"            	// प्रतिसाद स्थिति
    TagResBody           = "resBody"           	// प्रतिसाद बॉडी
    TagReqHeaders        = "reqHeaders"        	// अनुरोध हेडर्स
    TagQueryStringParams = "queryParams"       	// क्वेरी पैरामीटर्स
    TagBody              = "body"              	// अनुरोध बॉडी
    TagBytesSent         = "bytesSent"         	// भेजे गए बाइट
    TagBytesReceived     = "bytesReceived"     	// प्राप्त बाइट
    TagRoute             = "route"             	// मार्ग
    TagError             = "error"             	// त्रुटि
    // Deprecated: इस्तेमाल करें TagReqHeader को
    TagHeader            = "header:"           	// अनुरोध हेडर
    TagReqHeader         = "reqHeader:"        	// अनुरोध हेडर
    TagRespHeader        = "respHeader:"       	// प्रतिसाद हेडर
    TagQuery             = "query:"            	// क्वेरी
    TagForm              = "form:"             	// फॉर्म
    TagCookie            = "cookie:"           	// कुकी
    TagLocals            = "locals:"           	// स्थानीय चर
    // रंग
    TagBlack             = "black"             	// काला
    TagRed               = "red"               	// लाल
    TagGreen             = "green"             	// हरा
    TagYellow            = "पीला"            	// पीला
    TagBlue              = "नीला"              	// नीला
    TagMagenta           = "मैजेंटा"           	// मैजेंटा
    TagCyan              = "सियान"              	// सियान
    TagWhite             = "सफ़ेद"             	// सफ़ेद
    TagReset             = "रीसेट"             	// रंग रीसेट
)