Go语言日志内聚复用及gjson踩坑记录分享

 更新时间:2022年06月11日 14:32:45   作者:王中阳Go  
这篇文章主要为大家介绍了Go语言日志内聚复用及gjson踩坑记录分享,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

今天分享一下最近遇到的坑:

以下代码示例使用GoFrame框架,下文简称为gf框架。

统一日志格式

我有个不好的习惯,不管是之前开发PHP,还是现在开发GO,都习惯在开发过程中使用dump()打印数据进行调试。

本地调试虽然爽了,但是上到测试环境,甚至开发环境查不到日志,无法方便的定位问题可就傻了。

所以,我们需要养成关键步骤打印日志的好习惯,而且要统一日志格式。

打印日志

scm.Log.Info("测试的日志都打印在这里,res:%v", res)

封装打印日志的方法

指定日志打印目录

var Log = g.Log().Path(g.Log().GetPath() + "/scm")

通过gf提供的 g.log,再加上我们自己的封装,就能把日志按功能模块进行区分,方便定位问题。

内聚和复用

gf框架有一个设计:internal,即只允许内部调用的方法。

我觉得作者设计internal,一方面是处于安全考虑,另外一方面是处于高内聚的考虑。

但是,也不要过度内聚,我今天遇到的问题就是如何更好的实现代码复用。

所以在项目中抽取了公共方法目录shared,将原本写在internal中的可以复用的逻辑进行迁移。

gjson

今天发现一个非常好用的工具类:gjson

gjson 可以将json/xml/toml/等文件或者文件内容进行读取,创建对象,通过get方法可以取到对象对应的值

package main
import (
   "fmt"
   "github.com/gogf/gf/encoding/gjson"
)

func main() {
   jsonContent := `{"k5":1}`
   jsonObj, err := gjson.LoadContent(jsonContent)
   if err != nil {
      panic(err)
   }
   fmt.Println(jsonObj.Get("k5"))
}

打印结果

最近又在解决很坑人的问题,一直没能静下心来,总是想着一定是哪些小问题导致的,总想着快速解决问题。但是这种谋求快速解决问题的心理导致一直浮在问题表面,没有从根本上解决问题,反而一直在拖进度,让进度越来越慢。

以上就是Go语言日志内聚复用及gjson踩坑记录分享的详细内容,更多关于Go日志内聚复用gjson踩坑的资料请关注脚本之家其它相关文章!

相关文章

  • Gin与Mysql实现简单Restful风格API实战示例详解

    Gin与Mysql实现简单Restful风格API实战示例详解

    这篇文章主要为大家介绍了Gin与Mysql实现简单Restful风格API示例详解,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2021-11-11
  • GO语言入门Golang进入HelloWorld

    GO语言入门Golang进入HelloWorld

    本篇文章是go语言基础篇,非常适合go语言刚入门的小白,主要介绍了GO语言入门Golang进入HelloWorld,跟着小编一起来编写Go语言的第一程序helloworld吧
    2021-09-09
  • 详解Go语言中关于包导入必学的 8 个知识点

    详解Go语言中关于包导入必学的 8 个知识点

    这篇文章主要介绍了详解Go语言中关于包导入必学的 8 个知识点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 如何使用Go检测用户本地是否安装chrome

    如何使用Go检测用户本地是否安装chrome

    这篇文章主要为大家详细介绍了如何使用Go检测用户本地是否安装chrome,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • 再次探讨go实现无限 buffer 的 channel方法

    再次探讨go实现无限 buffer 的 channel方法

    我们知道go语言内置的channel缓冲大小是有上限的,那么我们自己如何实现一个无限 buffer 的 channel呢?今天通过本文给大家分享go实现无限 buffer 的 channel方法,感兴趣的朋友一起看看吧
    2021-06-06
  • golang中对

    golang中对"引用传递"的误解

    这篇文章主要介绍了golang中对“引用传递”的误解,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • 基于Go语言实现简单的计算器

    基于Go语言实现简单的计算器

    这篇文章主要为大家详细介绍了如何基于Go语言实现简单的计算器,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-10-10
  • GO语言实现二维码扫码的示例代码

    GO语言实现二维码扫码的示例代码

    你对二维码扫码的流程有困惑吗,这篇文章就结合笔者自身的开发经验进行分享,让大家熟悉并掌握此功能,感兴趣的小伙伴快跟随小编一起学习一下吧
    2023-06-06
  • Golang 使用http Client下载文件的实现方法

    Golang 使用http Client下载文件的实现方法

    今天小编就为大家分享一篇Golang 使用http Client下载文件的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 一文详解Golang中的基础语法

    一文详解Golang中的基础语法

    这篇文章主要为大家详细介绍了Golang中基础语法的相关知识,文中的示例代码讲解详细,对我们学习Golang有一定的帮助,感兴趣的可以了解一下
    2023-03-03

最新评论