衔接上文,继续开发。这一章主要是解决日志输出的问题。

 

我们使用logging包对log库进行封装。

 

新建logging包

在pkg下新建logging目录,新建file.go 和 log.go文件

file.go文件

关键知识点:

os.Stat 函数返回文件信息结构描述结构体,如果出现错误,则会返回一个PathError的结构体。

os.IsNotExist 返回一个bool,得知文件不存在或者目录不存在的错误。

os.IsPermission 返回一个bool,得知权限是否满足的问题。

 

OpenFile 调用文件,传入参数:文件名称、调用模式、权限。如果出现错误则返回PathError结构体。

调用模式参数如下:

 

os.Getwd 函数返回与当前目录对应的根路径名。

os.ModePerm 是Unix权限位,定义是:ModePerm FileMode = 0777

 

 

log.go文件

 

log.New 创建新的日志记录器。三个参数:

  • out 定义写入日志数据的IO句柄
  • prefix 定义生成的日志每一行的开头
  • flag 定义日志记录属性

日志记录属性的定义可以自己定位进去看。

 

使用logging包

完成了logging包之后,我们需要修改大多数代码,只要项目中用到了其他log包的地方,全部要修改。

比如routers目录下的 article.go 、 tag.go 、 auth.go 三个文件。

还有models目录下的 models.go文件

package/setting目录下的 setting.go文件。

将原本的log包引用删除,改为我们自己的 ginBlog/pkg/logging

然后将原来的 log.Println替换为 logging.Info() 函数,log.Fatalf 替换为 logging.Fatal函数。其他的Log按照对应Level替换。

但是logging包里面的是不能替换的…哈哈哈。

 

验证Logging包

先启动服务,然后请求文章,故意传递错误参数:

GET 192.168.1.101:8000/api/v1/articles?tag_id=0&token=eyJhbGciOi…

这里记得先获取Token,然后再请求就会给出错误信息。

然后我们查看日志:ginBlog/runtime/logs 文件夹内

 

然后到这里就算完成了。

 

【Go】gin Blog项目(五) 文件日志
Tagged on:     
0 0 投票数
Article Rating
订阅评论
提醒

0 评论
内联反馈
查看所有评论