লগার
ফাইবারের জন্য একটি মিডলওয়্যার যা এইচটিটিপি অনুরোধ এবং প্রতিক্রিয়ার বিস্তৃত তথ্য সম্পর্কে তথ্য লগ করার জন্য ব্যবহৃত হয়।
ইন্টারফেস
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-Jan-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(output logger.Buffer, c *fiber.Ctx, data *logger.Data, extraParam string) (int, error) {
return output.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 |
Next মিডলওয়েয়ার এটা বাদ দেবার সময়কে সংজ্ঞায়িত করে। | nil |
Done | func(*fiber.Ctx, []byte) |
অবস্থানপূর্ণ হলে, লগ স্ট্রিংয়ের দর |
ডিফল্ট কনফিগারেশন
var ConfigDefault = Config{
Next: nil,
Done: nil,
Format: "[${time}] ${status} - ${latency} ${method} ${path}\n",
TimeFormat: "15:04:05",
TimeZone: "Local",
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" // ত্রুটি
// প্রেক্ষিপ্ত: ট্যাগ রেকুয়েস্ট হেডার ব্যবহার করুন
TagHeader = "header:" // অনুরোধ হেডার
TagReqHeader = "reqHeader:" // অনুরোধ হেডার
TagRespHeader = "respHeader:" // প্রতিক্রিয়া হেডার
TagQuery = "query:" // জিজ্ঞাসাপ্রশ্ন
TagForm = "form:" // ফর্ম
TagCookie = "cookie:" // কুকি
TagLocals = "locals:" // স্থানীয় ভেরিয়েবল
// রঙ
TagBlack = "black" // কালো
TagRed = "red" // লাল
TagGreen = "green" // সবুজ
TagYellow = "yellow" // হলুদ
TagBlue = "blue" // নীল
TagMagenta = "magenta" // গুলাবী
TagCyan = "cyan" // সিয়ান
TagWhite = "white" // সাদা
TagReset = "reset" // রিসেট রঙ
)