-
Notifications
You must be signed in to change notification settings - Fork 53
/
logger.go
48 lines (43 loc) · 1.22 KB
/
logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
* @Author: seekwe
* @Date: 2019-05-09 16:50:25
* @Last Modified by: seekwe
* @Last Modified time: 2019-06-04 18:57:35
*/
package znet
import (
"fmt"
"github.com/sohaha/zlsgo/zstring"
"strconv"
"time"
"github.com/sohaha/zlsgo/zlog"
)
func withRequestLog(c *Context) {
if c.Request.RequestURI == "/favicon.ico" {
return
}
c.Next()
requestLog(c)
}
func requestLog(c *Context) {
if c.Engine.webMode > releaseCode {
end := time.Now()
latency := end.Sub(c.Info.StartTime)
code := c.Code
var status string
statusCode := zstring.Buffer()
statusCode.WriteString(" ")
statusCode.WriteString(strconv.Itoa(code))
statusCode.WriteString(" ")
switch {
case code >= 200 && code <= 299:
status = c.Log.ColorBackgroundWrap(zlog.ColorBlack, zlog.ColorGreen, statusCode.String())
case code >= 300 && code <= 399:
status = c.Log.ColorBackgroundWrap(zlog.ColorBlack, zlog.ColorYellow, statusCode.String())
default:
status = c.Log.ColorBackgroundWrap(zlog.ColorBlack, zlog.ColorRed, statusCode.String())
}
ft := fmt.Sprintf("%s %15s %15v %%s %%s", status, c.Log.ColorTextWrap(zlog.ColorWhite, c.ClientIP()), latency)
c.Log.Success(showRouteDebug(c.Log, ft, c.Request.Method, c.Request.RequestURI))
}
}