Categories: GoFrame 教程

GoFrame 日志组件-文件目录

日志文件

默认情况下,日志文件名称以当前时间日期命名,格式为​YYYY-MM-DD.log​,我们可以使用​SetFile​方法来设置文件名称的格式,并且文件名称格式支持 时间管理-​gtime时间格式 。简单示例:

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)
}

执行后,输出结果为:

<nil>
[
    "C:hailaz estglog2021-12-31.log",
    "C:hailaz estglogaccess-20211231.log",
    "C:hailaz estglogerror-20211231.log",
    "C:hailaz estglogstderr.log",
    "C:hailaz estglogstdout.log",
]

可以看到,文件名称格式中如果需要使用​gtime​时间格式,格式内容需要使用​{xxx}​包含起来。该示例中也使用到了链式操作的特性,具体请看后续说明。

日志目录

默认情况下,​glog​将会输出日志内容到标准输出,我们可以通过​SetPath​方法设置日志输出的目录路径,这样日志内容将会写入到日志文件中,并且由于其内部使用了​gfpool​文件指针池,文件写入的效率相当优秀。简单示例:

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)
}

执行后,输出内容为:

2021-12-31 11:32:16.742 日志内容 
<nil>
[
    "C:hailaz estglog2021-12-31.log",
]

当通过​SetPath​设置日志的输出目录,如果目录不存在时,将会递归创建该目录路径。可以看到,执行​Println​之后,在​/tmp​下创建了日志目录​glog​,并且在其下生成了日志文件。同时,我们也可以看见日志内容不仅输出到了文件,默认情况下也输出到了终端,我们可以通过​SetStdoutPrint(false)​方法来关闭终端的日志输出,这样日志内容仅会输出到日志文件中。

terry

这个人很懒,什么都没有留下~

Share
Published by
terry

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

1 月 ago