mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-15 08:14:46 +08:00
优化代码规范
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
)
|
||||
|
||||
const defaultSkip = 7
|
||||
|
||||
type IOriginHandler interface {
|
||||
slog.Handler
|
||||
Lock()
|
||||
@@ -21,9 +22,9 @@ type IOriginHandler interface {
|
||||
|
||||
type BaseHandler struct {
|
||||
addSource bool
|
||||
w io.Writer
|
||||
locker sync.Mutex
|
||||
skip int
|
||||
w io.Writer
|
||||
locker sync.Mutex
|
||||
skip int
|
||||
}
|
||||
|
||||
type OriginTextHandler struct {
|
||||
@@ -36,15 +37,15 @@ type OriginJsonHandler struct {
|
||||
*slog.JSONHandler
|
||||
}
|
||||
|
||||
func (bh *BaseHandler) SetSkip(skip int){
|
||||
func (bh *BaseHandler) SetSkip(skip int) {
|
||||
bh.skip = skip
|
||||
}
|
||||
|
||||
func (bh *BaseHandler) GetSkip() int{
|
||||
func (bh *BaseHandler) GetSkip() int {
|
||||
return bh.skip
|
||||
}
|
||||
|
||||
func getStrLevel(level slog.Level) string{
|
||||
func getStrLevel(level slog.Level) string {
|
||||
switch level {
|
||||
case LevelTrace:
|
||||
return "Trace"
|
||||
@@ -71,39 +72,39 @@ func defaultReplaceAttr(groups []string, a slog.Attr) slog.Attr {
|
||||
if a.Key == slog.LevelKey {
|
||||
level := a.Value.Any().(slog.Level)
|
||||
a.Value = slog.StringValue(getStrLevel(level))
|
||||
}else if a.Key == slog.TimeKey && len(groups) == 0 {
|
||||
} else if a.Key == slog.TimeKey && len(groups) == 0 {
|
||||
a.Value = slog.StringValue(a.Value.Time().Format("2006/01/02 15:04:05"))
|
||||
}else if a.Key == slog.SourceKey {
|
||||
} else if a.Key == slog.SourceKey {
|
||||
source := a.Value.Any().(*slog.Source)
|
||||
source.File = filepath.Base(source.File)
|
||||
}
|
||||
return a
|
||||
}
|
||||
|
||||
func NewOriginTextHandler(level slog.Level,w io.Writer,addSource bool,replaceAttr func([]string,slog.Attr) slog.Attr) slog.Handler{
|
||||
func NewOriginTextHandler(level slog.Level, w io.Writer, addSource bool, replaceAttr func([]string, slog.Attr) slog.Attr) slog.Handler {
|
||||
var textHandler OriginTextHandler
|
||||
textHandler.addSource = addSource
|
||||
textHandler.w = w
|
||||
textHandler.TextHandler = slog.NewTextHandler(w,&slog.HandlerOptions{
|
||||
textHandler.TextHandler = slog.NewTextHandler(w, &slog.HandlerOptions{
|
||||
AddSource: addSource,
|
||||
Level: level,
|
||||
ReplaceAttr: replaceAttr,
|
||||
})
|
||||
|
||||
textHandler.skip = defaultSkip
|
||||
textHandler.skip = defaultSkip
|
||||
return &textHandler
|
||||
}
|
||||
|
||||
func (oh *OriginTextHandler) Handle(context context.Context, record slog.Record) error{
|
||||
oh.Fill(context,&record)
|
||||
func (oh *OriginTextHandler) Handle(context context.Context, record slog.Record) error {
|
||||
oh.Fill(context, &record)
|
||||
oh.locker.Lock()
|
||||
defer oh.locker.Unlock()
|
||||
|
||||
if record.Level == LevelStack || record.Level == LevelFatal{
|
||||
|
||||
if record.Level == LevelStack || record.Level == LevelFatal {
|
||||
err := oh.TextHandler.Handle(context, record)
|
||||
oh.logStack(&record)
|
||||
return err
|
||||
}else if record.Level == LevelDump {
|
||||
} else if record.Level == LevelDump {
|
||||
strDump := record.Message
|
||||
record.Message = "dump info"
|
||||
err := oh.TextHandler.Handle(context, record)
|
||||
@@ -111,27 +112,26 @@ func (oh *OriginTextHandler) Handle(context context.Context, record slog.Record)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
return oh.TextHandler.Handle(context, record)
|
||||
}
|
||||
|
||||
func (b *BaseHandler) logStack(record *slog.Record){
|
||||
b.w.Write(debug.Stack())
|
||||
func (bh *BaseHandler) logStack(record *slog.Record) {
|
||||
bh.w.Write(debug.Stack())
|
||||
}
|
||||
|
||||
func (b *BaseHandler) Lock(){
|
||||
b.locker.Lock()
|
||||
func (bh *BaseHandler) Lock() {
|
||||
bh.locker.Lock()
|
||||
}
|
||||
|
||||
func (b *BaseHandler) UnLock(){
|
||||
b.locker.Unlock()
|
||||
func (bh *BaseHandler) UnLock() {
|
||||
bh.locker.Unlock()
|
||||
}
|
||||
|
||||
func NewOriginJsonHandler(level slog.Level,w io.Writer,addSource bool,replaceAttr func([]string,slog.Attr) slog.Attr) slog.Handler{
|
||||
func NewOriginJsonHandler(level slog.Level, w io.Writer, addSource bool, replaceAttr func([]string, slog.Attr) slog.Attr) slog.Handler {
|
||||
var jsonHandler OriginJsonHandler
|
||||
jsonHandler.addSource = addSource
|
||||
jsonHandler.w = w
|
||||
jsonHandler.JSONHandler = slog.NewJSONHandler(w,&slog.HandlerOptions{
|
||||
jsonHandler.JSONHandler = slog.NewJSONHandler(w, &slog.HandlerOptions{
|
||||
AddSource: addSource,
|
||||
Level: level,
|
||||
ReplaceAttr: replaceAttr,
|
||||
@@ -141,10 +141,10 @@ func NewOriginJsonHandler(level slog.Level,w io.Writer,addSource bool,replaceAtt
|
||||
return &jsonHandler
|
||||
}
|
||||
|
||||
func (oh *OriginJsonHandler) Handle(context context.Context, record slog.Record) error{
|
||||
oh.Fill(context,&record)
|
||||
if record.Level == LevelStack || record.Level == LevelFatal || record.Level == LevelDump{
|
||||
record.Add("stack",debug.Stack())
|
||||
func (oh *OriginJsonHandler) Handle(context context.Context, record slog.Record) error {
|
||||
oh.Fill(context, &record)
|
||||
if record.Level == LevelStack || record.Level == LevelFatal || record.Level == LevelDump {
|
||||
record.Add("stack", debug.Stack())
|
||||
}
|
||||
|
||||
oh.locker.Lock()
|
||||
@@ -152,10 +152,10 @@ func (oh *OriginJsonHandler) Handle(context context.Context, record slog.Record)
|
||||
return oh.JSONHandler.Handle(context, record)
|
||||
}
|
||||
|
||||
func (b *BaseHandler) Fill(context context.Context, record *slog.Record) {
|
||||
if b.addSource {
|
||||
func (bh *BaseHandler) Fill(_ context.Context, record *slog.Record) {
|
||||
if bh.addSource {
|
||||
var pcs [1]uintptr
|
||||
runtime.Callers(b.skip, pcs[:])
|
||||
runtime.Callers(bh.skip, pcs[:])
|
||||
record.PC = pcs[0]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user