允许用户自定义打印的拓展字段

This commit is contained in:
Yun
2025-06-10 15:41:44 +08:00
parent 3ca01077b6
commit 7dc8dbb539
3 changed files with 28 additions and 2 deletions
+14 -2
View File
@@ -15,6 +15,7 @@ func main() {
// loggerx.SetTimeZone(time.UTC),
loggerx.SetTimeZone(time.FixedZone("CST", 8*3600)),
loggerx.SetEscapeHTML(false),
// loggerx.SetExpandData("ddd", "dddd"),
)
log.WriteAsync().Info(ctx, "{ \"a\": 1, \"b\": 2 }")
log.Info(ctx, "哈哈哈2")
@@ -25,8 +26,19 @@ func main() {
log.Info(ctx, "哈哈哈2<")
log.Info(ctx, "哈哈哈2>")
for i := 0; i < 100; i++ {
log.WriteAsync().Infof(ctx, "异步 %d", i)
for i := 0; i < 10000; i++ {
go func() {
log.WriteAsync().Infof(ctx, "异步1 %d", i)
}()
go log.WriteAsync().Infof(ctx, "异步2 %d", i)
log.WriteAsync().Infof(ctx, "异步2 %d", i)
}
for i := 0; i < 10000; i++ {
go func() {
log.Infof(ctx, "同步1 %d", i)
}()
go log.Infof(ctx, "同步2 %d", i)
log.Infof(ctx, "同步3 %d", i)
}
time.Sleep(time.Second)
+2
View File
@@ -46,6 +46,7 @@ func (l *Logger) logger(ctx context.Context, event string, v ...any) {
Gid: getGID(),
Content: v,
TraceId: traceId,
Expand: l.option.expandData,
}
if event == "error" {
@@ -85,4 +86,5 @@ type FormatData struct {
Content interface{} `json:"content,omitempty"`
TraceId string `json:"traceId,omitempty"`
Stack string `json:"stack,omitempty"`
Expand map[string]string `json:"expand,omitempty"`
}
+12
View File
@@ -22,6 +22,7 @@ type loggerOption struct {
sizeSplit int // 根据文件大小切割
timeZone *time.Location // 时区
escapeHTML bool
expandData map[string]string // 扩展字段
}
type writeType uint8
@@ -46,6 +47,7 @@ func defaultOptions() loggerOption {
fileSplit: FileSplitTimeE,
timeZone: time.Local,
escapeHTML: true,
expandData: make(map[string]string),
}
}
@@ -58,6 +60,16 @@ func SetTraceField(traceField string) Option {
}
}
// 附加字段
func SetExpandData(key string, value string) Option {
return func(o *loggerOption) {
if o.expandData == nil {
o.expandData = make(map[string]string)
}
o.expandData[key] = value
}
}
// 是否异步写入
func SetWriteAsync() Option {
return func(o *loggerOption) {