Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Comment:
输出结果格式
日志文件
默认情况下,日志文件名称以当前时间日期命名,格式为YYYY-MM-DD.log
,我们可以使用SetFile
方法来设置文件名称的格式,并且文件名称格式支持 时间管理-gtime 时间格式 。简单示例:
Code Block | ||
---|---|---|
| ||
package main import ( "context" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gfile" "github.com/gogf/gf/v2/os/glog" ) // 设置日志等级 func main() { ctx := context.TODO() path := "./glog" glog.SetPath(path) glog.SetStdoutPrint(false) // 使用默认文件名称格式 glog.Print(ctx, "标准文件名称格式,使用当前时间时期") // 通过SetFile设置文件名称格式 glog.SetFile("stdout.log") glog.Print(ctx, "设置日志输出文件名称格式为同一个文件") // 链式操作设置文件名称格式 glog.File("stderr.log").Print(ctx, "支持链式操作") glog.File("error-{Ymd}.log").Print(ctx, "文件名称支持带gtime日期格式") glog.File("access-{Ymd}.log").Print(ctx, "文件名称支持带gtime日期格式") list, err := gfile.ScanDir(path, "*") g.Dump(err) g.Dump(list) } |
执行后,输出结果为:
Code Block | ||
---|---|---|
| ||
<nil><br />[<br /> "C:\hailaz\test\glog\2021-12-31<nil> [ "D:\workspace\learn\gfv2\glog\2022-02-22.log",<br /> "CD:\hailazworkspace\learn\testgfv2\glog\access-2021123120220222.log",<br /> "CD:\workspace\hailazlearn\testgfv2\glog\error-2021123120220222.log",<br /> "CD:\hailazworkspace\learn\testgfv2\glog\stderr.log",<br /> "CD:\workspace\hailazlearn\testgfv2\glog\stdout.log",<br /> ] |
可以看到,文件名称格式中如果需要使用gtime
时间格式,格式内容需要使用{xxx}
包含起来。该示例中也使用到了链式操作
的特性,具体请看后续说明。
日志目录
默认情况下,glog
将会输出日志内容到标准输出,我们可以通过SetPath
方法设置日志输出的目录路径,这样日志内容将会写入到日志文件中,并且由于其内部使用了gfpool
文件指针池,文件写入的效率相当优秀。简单示例:
Code Block | ||
---|---|---|
| ||
package main import ( "context" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gfile" "github.com/gogf/gf/v2/os/glog" ) // 设置日志等级 func main() { ctx := context.TODO() path := "./glog" glog.SetPath(path) glog.Print(ctx, "日志内容") list, err := gfile.ScanDir(path, "*") g.Dump(err) g.Dump(list) } |
执行后,输出内容为:
Code Block | ||
---|---|---|
| ||
2021-12-31 11:32:16.742 日志内容 <nil> [ "C:\hailaz\test\glog\2021-12-31.log", ] |
当通过SetPath
设置日志的输出目录,如果目录不存在时,将会递归创建该目录路径。可以看到,执行Println
之后,在/tmp
下创建了日志目录glog
,并且在其下生成了日志文件。同时,我们也可以看见日志内容不仅输出到了文件,默认情况下也输出到了终端,我们可以通过SetStdoutPrint(false)
方法来关闭终端的日志输出,这样日志内容仅会输出到日志文件中。
Panel | ||
---|---|---|
| ||
|