71 lines
1.4 KiB
Go
71 lines
1.4 KiB
Go
package log
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
var AppLogger = NewStdout()
|
|
|
|
func T(name string) *Tag {
|
|
return AppLogger.Tag(name)
|
|
}
|
|
|
|
func ParseLogLevel(levelStr string) LogLevel {
|
|
switch strings.ToLower(levelStr) {
|
|
case "dbg":
|
|
return LDbg
|
|
case "inf":
|
|
return LInf
|
|
case "wrn":
|
|
return LWrn
|
|
case "err":
|
|
return LErr
|
|
default:
|
|
return LDbg
|
|
}
|
|
}
|
|
|
|
func Setup(minLevel LogLevel) {
|
|
AppLogger.MinLevel = minLevel
|
|
AppLogger.TagColor = map[string]LogColor{
|
|
"gin": CMagenta,
|
|
"main": CYellow,
|
|
"http": CGreen,
|
|
"server": CBlue,
|
|
}
|
|
}
|
|
|
|
func SetupGin1() {
|
|
gin.DebugPrintFunc = T("gin").Wrnf
|
|
gin.DefaultWriter = T("http").LogWriter(LInf)
|
|
}
|
|
|
|
func SetupGin2(e *gin.Engine) {
|
|
e.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
|
|
statusCode := fmt.Sprintf("%d", param.StatusCode)
|
|
statusColor := CReset
|
|
if param.StatusCode >= 400 {
|
|
statusColor = CRed
|
|
}
|
|
if param.StatusCode >= 300 && param.StatusCode < 400 {
|
|
statusColor = CYellow
|
|
}
|
|
if param.StatusCode >= 200 && param.StatusCode < 300 {
|
|
statusColor = CGreen
|
|
}
|
|
coloredStatausCode := fmt.Sprint(statusColor, statusCode, CReset)
|
|
return fmt.Sprint(
|
|
fmt.Sprintf("%-15s", param.ClientIP), " ",
|
|
coloredStatausCode, " ",
|
|
fmt.Sprintf("%-6s", param.Method), " ",
|
|
param.Path, " ",
|
|
"t=", param.Latency, " ",
|
|
"ua=", param.Request.UserAgent(), " ",
|
|
"msg=", param.ErrorMessage, "\n",
|
|
)
|
|
}))
|
|
}
|