flags
用于控制日志组件的额外特性开关,这些属性使用常量进行组合控制,包括:
F_ASYNC = 1 << iota // 开启日志异步输出 F_FILE_LONG // 打印调用行号信息,完整绝对路径,例如:/a/b/c/d.go:23 F_FILE_SHORT // 打印调用行号信息,仅打印文件名,例如:d.go:23,覆盖 F_FILE_LONG. F_TIME_DATE // 打印当前日期,如:2009-01-23 F_TIME_TIME // 打印当前时间,如:01:23:23 F_TIME_MILLI // 打印当前时间+毫秒,如:01:23:23.675 F_TIME_STD = F_TIME_DATE | F_TIME_MILLI // (默认)打印当前日期+时间+毫秒,如:2009-01-23 01:23:23.675
使用示例:
package main import ( "context" "github.com/gogf/gf/v2/os/glog" ) func main() { ctx := context.TODO() l := glog.New() l.SetFlags(glog.F_TIME_TIME | glog.F_FILE_SHORT) l.Print(ctx, "time and short line number") l.SetFlags(glog.F_TIME_MILLI | glog.F_FILE_LONG) l.Print(ctx, "time with millisecond and long line number") l.SetFlags(glog.F_TIME_STD | glog.F_FILE_LONG) l.Print(ctx, "standard time format and long line number") }
执行后,终端输出结果为:
PS C:\hailaz\test> go run .\main.go 16:05:35 main.go:13: time and short line number 16:05:35.108 C:/hailaz/test/main.go:15: time with millisecond and long line number 2022-01-05 16:05:35.109 C:/hailaz/test/main.go:17: standard time format and long line number
5 Comments
FLY的狐狸
log日志格式level设置的多种方式 和 Flags设置方式 提供了灵活性;可读性和规范性是不是相对差一些?这些功能是不是可以不体现或者不建议呢,让新手 更轻松一些;
白夜
郭强 郭哥,看了日志组件遇到一个问题:怎么设置log 的format。日志内容默认时间格式为
时间 [级别] trace-id 内容 换行,想要改成:时间 [级别] trace-id 行号 goroutine-id 内容 换行; 目前行号有2个形式。
使用
glog.New().setFlag(glog.F_FILE_SHORT)可以加上行号,但是带来一个问题,config.toml 文件的所有配置项都需要配置一遍;海亮
g.Log().SetFlags(g.Log().GetFlags() | glog.F_FILE_SHORT)
白夜
我放到config.toml也实现了,只是不优美:
海亮
日志组件-Handler 想怎么自定义都行