新增日志接口--SetSkip/GetSkip

This commit is contained in:
boyce
2024-06-24 15:29:54 +08:00
parent 0a92f48d0b
commit ea37fb5081
2 changed files with 19 additions and 1 deletions

View File

@@ -10,16 +10,20 @@ import (
"sync"
)
const defaultSkip = 7
type IOriginHandler interface {
slog.Handler
Lock()
UnLock()
SetSkip(skip int)
GetSkip() int
}
type BaseHandler struct {
addSource bool
w io.Writer
locker sync.Mutex
skip int
}
type OriginTextHandler struct {
@@ -32,6 +36,14 @@ type OriginJsonHandler struct {
*slog.JSONHandler
}
func (bh *BaseHandler) SetSkip(skip int){
bh.skip = skip
}
func (bh *BaseHandler) GetSkip() int{
return bh.skip
}
func getStrLevel(level slog.Level) string{
switch level {
case LevelTrace:
@@ -78,6 +90,7 @@ func NewOriginTextHandler(level slog.Level,w io.Writer,addSource bool,replaceAtt
ReplaceAttr: replaceAttr,
})
textHandler.skip = defaultSkip
return &textHandler
}
@@ -124,6 +137,7 @@ func NewOriginJsonHandler(level slog.Level,w io.Writer,addSource bool,replaceAtt
ReplaceAttr: replaceAttr,
})
jsonHandler.skip = defaultSkip
return &jsonHandler
}
@@ -141,7 +155,7 @@ func (oh *OriginJsonHandler) Handle(context context.Context, record slog.Record)
func (b *BaseHandler) Fill(context context.Context, record *slog.Record) {
if b.addSource {
var pcs [1]uintptr
runtime.Callers(7, pcs[:])
runtime.Callers(b.skip, pcs[:])
record.PC = pcs[0]
}
}

View File

@@ -239,6 +239,10 @@ func (iw *IoWriter) swichFile() error{
return nil
}
func GetDefaultHandler() IOriginHandler{
return gLogger.(*Logger).Slogger.Handler().(IOriginHandler)
}
func NewTextLogger(level slog.Level,pathName string,filePrefix string,addSource bool,logChannelCap int) (ILogger,error){
var logger Logger
logger.ioWriter.filePath = pathName