项目源码
前言
本篇来讲一下怎么将日志服务集成到项目中,它也是框架中必不可少的,平时代码调试,线上 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! |
本文转载自: 掘金