项目源码
前言
本篇来讲一下怎么将日志服务集成到项目中,它也是框架中必不可少的,平时代码调试,线上 Bug 分析都离不开它。这里将使用 zap 作为日志库,一般来说,日志都是需要写入到文件保存的,这也是 zap 唯一缺少的部分,所以我将结合 lumberjack 来使用,实现日志切割归档的功能
安装
1 | shell复制代码go get -u go.uber.org/zap |
定义日志配置项
新建 config/log.go
文件,定义 zap
和 lumberjack
初始化需要使用的配置项,大家可以根据自己的喜好去定制
1 | go复制代码package config |
config/config.go
添加 Log
成员属性
1 | go复制代码package config |
config.yaml
增加对应配置项
1 | yaml复制代码log: |
定义 utils 工具函数
新建 utils/directory.go
文件,编写 PathExists
函数,用于判断路径是否存在
1 | go复制代码package utils |
初始化 zap
zap
的具体使用说明可查看官方文档
新建 bootstrap/log.go
文件,编写:
1 | go复制代码package bootstrap |
定义全局变量 Log
在 global/app.go
中,添加 Log
成员属性
1 | go复制代码package global |
测试
在 main.go
中调用日志初始化函数,并尝试写入日志
1 | go复制代码package main |
启动 main.go
,生成 storage/logs/app.log
文件,表示日志初始化成功,文件内容显示如下:
1 | bash复制代码[2021-10-12 19:17:46.997] local.info jassue-gin/main.go:16 log init success! |
本文转载自: 掘金