溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言日志內(nèi)聚復用的方法

發(fā)布時間:2022-06-13 10:05:38 來源:億速云 閱讀:150 作者:zzz 欄目:開發(fā)技術

這篇“Go語言日志內(nèi)聚復用的方法”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Go語言日志內(nèi)聚復用的方法”文章吧。

統(tǒng)一日志格式

我有個不好的習慣,不管是之前開發(fā)PHP,還是現(xiàn)在開發(fā)GO,都習慣在開發(fā)過程中使用dump()打印數(shù)據(jù)進行調(diào)試。

本地調(diào)試雖然爽了,但是上到測試環(huán)境,甚至開發(fā)環(huán)境查不到日志,無法方便的定位問題可就傻了。

所以,我們需要養(yǎng)成關鍵步驟打印日志的好習慣,而且要統(tǒng)一日志格式。

打印日志

scm.Log.Info("測試的日志都打印在這里,res:%v", res)

封裝打印日志的方法

指定日志打印目錄

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

通過gf提供的 g.log,再加上我們自己的封裝,就能把日志按功能模塊進行區(qū)分,方便定位問題。

內(nèi)聚和復用

gf框架有一個設計:internal,即只允許內(nèi)部調(diào)用的方法。

我覺得作者設計internal,一方面是處于安全考慮,另外一方面是處于高內(nèi)聚的考慮。

但是,也不要過度內(nèi)聚,我今天遇到的問題就是如何更好的實現(xiàn)代碼復用。

所以在項目中抽取了公共方法目錄shared,將原本寫在internal中的可以復用的邏輯進行遷移。

gjson

今天發(fā)現(xiàn)一個非常好用的工具類:gjson

gjson 可以將json/xml/toml/等文件或者文件內(nèi)容進行讀取,創(chuàng)建對象,通過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語言日志內(nèi)聚復用的方法

以上就是關于“Go語言日志內(nèi)聚復用的方法”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關的知識內(nèi)容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI