لاگر
Fiber کے لئے ایک میڈل ویئر جو HTTP درخواستوں اور واپسیوں کے بارے میں تفصیلی معلومات کو لاگ کرنے کے لئے استعمال ہوتا ہے۔
انٹرفیس
func New(config ...Config) fiber.Handler
مثال
Fiber ویب فریم ورک کی میڈل ویئر پیکیج کو درآمد کریں:
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
)
نوٹ: رجسٹریشن کا ترتیب نہایت اہم ہے۔ صرف اس میڈل ویئر کے بعد رجسٹر شدہ راستے لاگ ہوں گے۔ اس لئے یہ میڈل ویئر پہلا رجسٹر ہونا چاہئے۔
Fiber ایپلیکیشن کی ابتدائی کرنے کے بعد، مندرجہ ذیل طریقوں سے میڈل ویئر کو رجسٹر کرنا ممکن ہے:
// ایکسٹافالٹ کنفیگریشن کے ساتھ شروع کریں
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{
// مزید اختیارات کے لئے، 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{
"custom_tag": 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 ایک فنکشن ہے جو میڈل ویئر کو گزرنے سے چھوڑ دیتا ہے جب یہ true واپس کرتا ہے۔ | nil |
Done | func(*fiber.Ctx, []byte) |
Done ایک فنکشن ہے جو لاگ کی رشتے کو Output میں لکھنے کے بعد بلایا جاتا ہے، جس میں لاگ کا رشتہ ایک پیرامیٹر کے طور پر موصول کیا جاتا ہے۔ | nil |
CustomTags | map[string]LogFunc |
tagFunctions کسٹم ٹیگ عمل کو معرف کرتا ہے۔ | map[string]LogFunc |
Format | string |
Format لاگ ٹیگز کو تعین کرتا ہے۔ | [${time}] ${status} - ${latency} ${method} ${path}\n |
TimeFormat | string |
TimeFormat لاگ کے وقت کے فارمیٹ کو تعین کرتا ہے۔ | 15:04:05 |
TimeZone | string |
TimeZone کو "UTC" ، "America/New_York" ، "Asia/Chongqing" وغیرہ کے طور پر مخصوص کیا جا سکتا ہے۔ | "Local" |
TimeInterval | time.Duration |
TimeInterval وقت کے سٹیمپ کو اپ ڈیٹ کرنے سے پہلے دیرینہ وقت ہے۔ | 500 * time.Millisecond |
Output | io.Writer |
Output ایک رائٹر ہے جو لاگ کو لکھنے کے لئے استعمال ہوتا ہے۔ | os.Stdout |
DisableColors | bool |
DisableColors تعین کرتا ہے کہ کیا لاگ اوٹ پر رنگوں کا استعمال ہونا چاہئے یا نہیں۔ | false |
enableColors | bool |
لاگ اوٹ میں رنگوں کو فعال کرنے کے لئے اندرونی فیلڈ۔ (یہ ایک ترتیب کے مطابق فیلڈ نہیں ہے) | - |
enableLatency | bool |
لاگ میں دیر شدت کو فعال کرنے کے لئے اندرونی فیلڈ۔ (یہ ایک ترتیب کے مطابق فیلڈ نہیں ہے) | - |
timeZoneLocation | *time.Location |
وقت کی زون لوکیشن کے لئے اندرونی فیلڈ۔ (یہ ایک ترتیب کے مطابق فیلڈ نہیں ہے) | - |
ڈیفالٹ تشکیلات
var ConfigDefault = Config{
Next: nil,
Done: nil,
Format: "[${وقت}] ${حالت} - ${تاخیر} ${طریقہ} ${راستہ}\n",
TimeFormat: "15:04:05",
TimeZone: "مقامی",
TimeInterval: 500 * time.Millisecond,
Output: os.Stdout,
DisableColors: false,
}
مستقلات
// متکلن لاگر متغیرات
const (
TagPid = "پروسیس آئی ڈی" // پروسیس آئیڈی
TagTime = "وقت" // وقت
TagReferer = "ریفرر" // ریفرر
TagProtocol = "پروٹوکول" // پروٹوکول
TagPort = "پورٹ" // پورٹ
TagIP = "آئی پتہ" // آئی پتہ
TagIPs = "آئی پتہ جات" // آئی پتہ جات
TagHost = "میزبان" // میزبان
TagMethod = "طریقہ" // درخواست کا طریقہ
TagPath = "راستہ" // راستہ
TagURL = "یو آر ایل" // یو آر ایل
TagUA = "صارف ایجنٹ" // صارف ایجنٹ
TagLatency = "تاخیر" // تاخیر
TagStatus = "ردعمل حالت" // ردعمل کی حالت
TagResBody = "ردعمل باڈی" // ردعمل باڈی
TagReqHeaders = "درخواست ہیڈرز" // درخواست ہیڈرز
TagQueryStringParams = "کوئری پیرامیٹرز" // کوئری پیرامیٹرز
TagBody = "باڈی" // درخواست کا باڈی
TagBytesSent = "بائٹس بھیج دیے گئے" // بائٹس بھیج دیے گئے
TagBytesReceived = "بائٹس موصول ہوئے" // بائٹس موصول ہوئے
TagRoute = "راستہ" // راستہ
TagError = "غلطی" // غلطی
// منسوخ: استعمال TagReqHeader بجائے
TagHeader = "ہیڈر:" // درخواست ہیڈر
TagReqHeader = "درخواست ہیڈر:" // درخواست ہیڈر
TagRespHeader = "ردعمل ہیڈر:" // ردعمل ہیڈر
TagQuery = "کوئری:" // کوئری
TagForm = "فارم:" // فارم
TagCookie = "کوکی:" // کوکی
TagLocals = "مقامی متغیرات:" // مقامی متغیرات
// رنگ
TagBlack = "سیاہ" // سیاہ
TagRed = "سرخ" // سرخ
TagGreen = "سبز" // سبز
TagYellow = "زرد" // زرد
TagBlue = "نیلا" // نیلا
TagMagenta = "انکر" // انکر
TagCyan = "سمندری" // سمندری
TagWhite = "سفید" // سفید
TagReset = "ریست" // ریست رنگ
)