Documentation
¶
Index ¶
Constants ¶
View Source
const ( // request referer TagReferer = "referer" // request protocol TagProtocol = "protocol" // request port TagPort = "port" // request ip TagIP = "ip" // request ips TagIPs = "ips" // request host TagHost = "host" // request path TagPath = "path" // request url TagURL = "url" // request user-agent TagUA = "ua" // request body TagBody = "body" // request body bytes length TagBytesReceived = "bytesReceived" // response bytes length TagBytesSent = "bytesSent" // request route TagRoute = "route" // response body TagResBody = "resBody" // request headers TagReqHeaders = "reqHeaders" // request query parameters TagQueryStringParams = "queryParams" // response status TagStatus = "status" // request method TagMethod = "method" // fiber process id TagPid = "pid" // request latency TagLatency = "latency" )
Common Tags
View Source
const ( // request specified header TagReqHeader = "reqHeader" // response specified header TagRespHeader = "respHeader" // request specified query TagQuery = "query" // request specified form value TagForm = "form" // request specified cookie value TagCookie = "cookie" // request specified locals value TagLocals = "locals" )
Key Tags
Variables ¶
View Source
var CommonTags []string = []string{ TagReferer, TagProtocol, TagPort, TagIP, TagIPs, TagHost, TagPath, TagURL, TagUA, TagBody, TagBytesReceived, TagBytesSent, TagRoute, TagResBody, TagReqHeaders, TagQueryStringParams, TagStatus, TagMethod, TagPid, TagLatency, }
View Source
var KeyTags []string = []string{ TagReqHeader, TagRespHeader, TagQuery, TagForm, TagCookie, TagLocals, }
Functions ¶
func AttachKeyTag ¶
AttachKeyTag forms a string to access values stored as k-v pairs in format
"keytag:key"
Example:
AttachKeyTag(TagLocals, "requestid")
useing in Config.Tags will add a "locals:b367dbaf-7e1d-422c-97f0-ec4348c1bd0b" field in logger output
Types ¶
type FuncTag ¶
FuncTag is a function used to populate logrus field
var ( FuncTagReferer FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Get(fiber.HeaderReferer) } FuncTagProtocol FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Protocol() } FuncTagPort FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Port() } FuncTagIP FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.IP() } FuncTagIPs FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Get(fiber.HeaderXForwardedFor) } FuncTagHost FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Hostname() } FuncTagPath FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Path() } FuncTagURL FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.OriginalURL() } FuncTagUA FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Get(fiber.HeaderUserAgent) } FuncTagBody FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Body() } FuncTagBytesReceived FuncTag = func(c *fiber.Ctx, d *data) interface{} { return len(c.Request().Body()) } FuncTagBytesSent FuncTag = func(c *fiber.Ctx, d *data) interface{} { if c.Response().Header.ContentLength() < 0 { return 0 } return len(c.Response().Body()) } FuncTagRoute FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Route().Path } FuncTagResBody FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Response().Body() } FuncTagReqHeaders FuncTag = func(c *fiber.Ctx, d *data) interface{} { reqHeaders := make([]string, 0) for k, vs := range c.GetReqHeaders() { for _, v := range vs { reqHeaders = append(reqHeaders, k+"="+v) } } return []byte(strings.Join(reqHeaders, "&")) } FuncTagQueryStringParams FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Request().URI().QueryArgs().String() } FuncTagStatus FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Response().StatusCode() } FuncTagMethod FuncTag = func(c *fiber.Ctx, d *data) interface{} { return c.Method() } FuncTagPid FuncTag = func(c *fiber.Ctx, d *data) interface{} { return d.pid } FuncTagLatency FuncTag = func(c *fiber.Ctx, d *data) interface{} { return d.end.Sub(d.start).String() } FuncTagReqHeader = func(extra string) FuncTag { return func(c *fiber.Ctx, d *data) interface{} { return c.Get(extra) } } FuncTagRespHeader = func(extra string) FuncTag { return func(c *fiber.Ctx, d *data) interface{} { return c.GetRespHeader(extra) } } FuncTagQuery = func(extra string) FuncTag { return func(c *fiber.Ctx, d *data) interface{} { return c.Query(extra) } } FuncTagForm = func(extra string) FuncTag { return func(c *fiber.Ctx, d *data) interface{} { return c.FormValue(extra) } } FuncTagCookie = func(extra string) FuncTag { return func(c *fiber.Ctx, d *data) interface{} { return c.Cookies(extra) } } FuncTagLocals = func(extra string) FuncTag { return func(c *fiber.Ctx, d *data) interface{} { switch v := c.Locals(extra).(type) { case []byte: return string(v) case string: return v case nil: return nil default: return fmt.Sprintf("%v", v) } } } )
predefined FuncTag functions
Click to show internal directories.
Click to hide internal directories.