MCPcopy
hub / github.com/TarsCloud/TarsGo / DyeingWritef

Method DyeingWritef

tars/util/rogger/dyeing.go:73–117  ·  view source on GitHub ↗
(ctx context.Context, depth int, level LogLevel, ext interface{}, format string, v []interface{})

Source from the content-addressed store, hash-verified

71}
72
73func (l *Logger) DyeingWritef(ctx context.Context, depth int, level LogLevel, ext interface{}, format string, v []interface{}) {
74 l.Writef(depth+1, level, format, v)
75
76 dyeingKey, ok := current.GetDyeingKey(ctx)
77 if !ok {
78 return
79 }
80
81 buf := bytes.NewBuffer(nil)
82 if l.writer.NeedPrefix() {
83 fmt.Fprintf(buf, "%s|", time.Now().Format("2006-01-02 15:04:05.000"))
84
85 if callerFlag {
86 pc, file, line, ok := runtime.Caller(depth + callerSkip)
87 if !ok {
88 file = "???"
89 line = 0
90 } else {
91 file = filepath.Base(file)
92 }
93 fmt.Fprintf(buf, "%s:%s:%d|", file, FuncName(runtime.FuncForPC(pc)), line)
94 }
95 if IsColored() && l.IsConsoleWriter() {
96 buf.WriteString(level.ColoredString())
97 } else {
98 buf.WriteString(level.String())
99 }
100 buf.WriteByte('|')
101 }
102
103 if format == "" {
104 fmt.Fprint(buf, v...)
105 } else {
106 fmt.Fprintf(buf, format, v...)
107 }
108 if l.writer.NeedPrefix() {
109 buf.WriteByte('\n')
110 }
111
112 select {
113 case dyeingLogQueue <- &dyeingLogValue{Value: buf.Bytes(), DyeingKey: dyeingKey, ExtInfo: ext}:
114 default:
115 dyeingErrorLog.Error("dyeingLogQueue is full")
116 }
117}
118
119// AddDyeingUser add dyeing key to dyeingUserMap. key is separated by ','
120func AddDyeingUser(key string) error {

Callers 8

DyeingDebugMethod · 0.95
DyeingInfoMethod · 0.95
DyeingWarnMethod · 0.95
DyeingErrorMethod · 0.95
DyeingDebugfMethod · 0.95
DyeingInfofMethod · 0.95
DyeingWarnfMethod · 0.95
DyeingErrorfMethod · 0.95

Calls 10

WritefMethod · 0.95
IsConsoleWriterMethod · 0.95
WriteStringMethod · 0.95
GetDyeingKeyFunction · 0.92
FuncNameFunction · 0.85
IsColoredFunction · 0.85
ColoredStringMethod · 0.80
NeedPrefixMethod · 0.65
StringMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected