在实际的业务场景里面,我们开发项目的时候,打印日志是一个硬性的需求,因此这里的话,我们来演示下go语言里面的日志打印。
在go语言中,自带有日志打印的框架,但是对于我来说一般使用比较少,我们还是习惯使用开源的日志框架,主要就是使用起来很方便。这里的话我们使用的是zap日志框架,下面给大家演示下如何使用zap日志框架。
1)安装zap模块
在终端里面执行如下的语句安装zap日志框架
go get go.uber.org/zap
2)在项目中引入zap的依赖
这里我们要使用zap日志框架的话,就需要把它引入到项目里面来,因此需要引入这个zap框架,示例代码如下:
import ( "go.uber.org/zap" )
3)初始化logger变量
类似于java语言,在最开始的时候我们需要执行:
private static final Logger LOGGER = LoggerFactory.getLogger(FileApplication.class);
那么在go语言里面我们也需要来初始化这个logger变量,在go语言里面我们通用做法主要是2步:
第一步:声明一个logger的变量
var logger *zap.Logger
第二步:初始化logger变量
func init() { logger, _ = zap.NewProduction() }
4)使用logger打印日志
上面我们已经完成了变量的初始化,那么接下来我们使用即可,示例如下:
logger.Error("用户访问日志, action返回错误", zap.Error(err)) logger.Info("用户访问日志", zap.String("uri", ctx.Request().URL.Path), zap.Any("method", ctx.Request().Method), zap.Any("queryParaList", ctx.QueryParams()), zap.Any("formParaList", formParams), zap.Any("header", ctx.Request().Header), zap.Any("userAgent", ctx.Request().UserAgent()), zap.Any("cookies", ctx.Request().Cookies()), zap.String("ip", ctx.RealIP()), zap.Any("输入字节数", ctx.Request().Header.Get(echo.HeaderContentLength)), zap.Any("响应字节数", ctx.Response().Size), zap.Any("duration", duration), zap.Any("durationNanosecond", int64(duration)))
最后我们就可以在控制台看到打印的日志了。
还没有评论,来说两句吧...