forked from p93542168/wheat-cache
commit
63bd44da44
|
@ -13,3 +13,9 @@ lruCache:
|
||||||
maxSize: "1GB"
|
maxSize: "1GB"
|
||||||
eventDriverSize: 2000
|
eventDriverSize: 2000
|
||||||
workTime: 1
|
workTime: 1
|
||||||
|
|
||||||
|
logPrint:
|
||||||
|
stath: [
|
||||||
|
"debug",
|
||||||
|
"error"
|
||||||
|
]
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
package log
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package logx
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/event"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LogLevelState int8
|
||||||
|
|
||||||
|
var (
|
||||||
|
once sync.Once
|
||||||
|
stath []string
|
||||||
|
)
|
||||||
|
|
||||||
|
type upLogger struct {
|
||||||
|
ctx context.Context
|
||||||
|
produce event.ProduceInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
once.Do(func() {
|
||||||
|
stath = viper.GetStringSlice("logPrint.stath")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
type logInterface interface {
|
||||||
|
Debug(format string, msg ...interface{})
|
||||||
|
Info(format string, msg ...interface{})
|
||||||
|
Warn(format string, msg ...interface{})
|
||||||
|
Error(format string, msg ...interface{})
|
||||||
|
Panic(format string, msg ...interface{})
|
||||||
|
|
||||||
|
Print(level string, format string, msg ...interface{})
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
package logx
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/event"
|
||||||
|
middleMsg "gitee.com/timedb/wheatCache/pkg/middle-msg"
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func With(ctx context.Context, p event.ProduceInterface) *upLogger {
|
||||||
|
return &upLogger{
|
||||||
|
ctx: ctx,
|
||||||
|
produce: p,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *upLogger) Debug(format string, msg ...interface{}) {
|
||||||
|
l.Print("DEBUG", format, msg...)
|
||||||
|
}
|
||||||
|
func (l *upLogger) Info(format string, msg ...interface{}) {
|
||||||
|
l.Print("INFO", format, msg...)
|
||||||
|
}
|
||||||
|
func (l *upLogger) Warn(format string, msg ...interface{}) {
|
||||||
|
l.Print("WARN", format, msg...)
|
||||||
|
}
|
||||||
|
func (l *upLogger) Error(format string, msg ...interface{}) {
|
||||||
|
l.Print("ERROR", format, msg...)
|
||||||
|
}
|
||||||
|
func (l *upLogger) Panic(format string, msg ...interface{}) {
|
||||||
|
Print("ERROR", format, msg...)
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *upLogger) Print(level string, format string, msg ...interface{}) {
|
||||||
|
|
||||||
|
Print(level, format, msg...)
|
||||||
|
|
||||||
|
eventMiddle := event.NewEvent(middleMsg.EventNameLog)
|
||||||
|
eventMiddle.SetValue(middleMsg.EventKeyLog, middleMsg.LogContext{})
|
||||||
|
l.produce.Call(l.ctx, eventMiddle)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Debug(format string, msg ...interface{}) {
|
||||||
|
Print("DEBUG", format, msg...)
|
||||||
|
}
|
||||||
|
func Info(format string, msg ...interface{}) {
|
||||||
|
Print("INFO", format, msg...)
|
||||||
|
}
|
||||||
|
func Warn(format string, msg ...interface{}) {
|
||||||
|
Print("WARN", format, msg...)
|
||||||
|
}
|
||||||
|
func Error(format string, msg ...interface{}) {
|
||||||
|
Print("ERROR", format, msg...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Panic(format string, msg ...interface{}) {
|
||||||
|
Print("ERROR", format, msg...)
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Print(level string, format string, msg ...interface{}) {
|
||||||
|
place := findPlace()
|
||||||
|
datetime := fmt.Sprintf("%s", time.Now())[0:19]
|
||||||
|
|
||||||
|
fmt.Println(level, datetime, fmt.Sprintf(format, msg...))
|
||||||
|
|
||||||
|
for _, lv := range stath {
|
||||||
|
if strings.ToUpper(lv) == strings.ToUpper(level) {
|
||||||
|
fmt.Println(place)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func findPlace() string {
|
||||||
|
|
||||||
|
var (
|
||||||
|
place string
|
||||||
|
i = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
for {
|
||||||
|
_, file, line, _ := runtime.Caller(i)
|
||||||
|
if line == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
place = fmt.Sprintf("%s:%d\n%s", file, line, place)
|
||||||
|
}
|
||||||
|
|
||||||
|
return place
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package logx
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
_ "gitee.com/timedb/wheatCache/conf"
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/event"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestStd(t *testing.T) {
|
||||||
|
Info("%d%s", 11, "Info")
|
||||||
|
Debug("%d%s", 11, "Debug")
|
||||||
|
Warn("%d%s", 11, "Warn")
|
||||||
|
Error("%d%s", 11, "Error")
|
||||||
|
Panic("%d%s", 11, "Panic")
|
||||||
|
|
||||||
|
logger := With(context.Background(),
|
||||||
|
event.NewProduce(event.NewDriver(100)))
|
||||||
|
|
||||||
|
logger.Info("%d%s", 11, "Info")
|
||||||
|
logger.Debug("%d%s", 11, "Debug")
|
||||||
|
logger.Warn("%d%s", 11, "Warn")
|
||||||
|
logger.Error("%d%s", 11, "Error")
|
||||||
|
logger.Panic("%d%s", 11, "Panic")
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package middle_msg
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
var (
|
||||||
|
EventNameLog = "LogContext"
|
||||||
|
|
||||||
|
EventKeyLog = "LogContext"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LogContext struct {
|
||||||
|
Level string
|
||||||
|
Data time.Time
|
||||||
|
Msg string
|
||||||
|
Route string
|
||||||
|
}
|
Loading…
Reference in New Issue