整個看了一圈下來,感覺golang的日誌包在管理多執行緒安全的情況下,提供了最小粒度的工具。並沒有提供什麼複雜的過濾器之類的生成。
實現了乙個demo來記錄一下日誌分類日誌列印等實現:
package mainimport
(
"log""
os""io/ioutil""
io")var (
trace *log.logger //記錄所有日誌
info *log.logger //重要的資訊
warning *log.logger //需要注意的資訊
error *log.logger //致命錯誤
)func init()
trace = log.new(ioutil.discard, "
trace:
", log.ltime|log.lshortfile)
info = log.new(os.stdout, "
info:
", log.ltime|log.lshortfile)
warning = log.new(os.stdout, "
warning:
", log.ltime|log.lshortfile)
error = log.new(io.multiwriter(file, os.stderr), "
error
", log.ltime|log.lshortfile)
}func main()
其實給我感覺跟python沒差,還簡單很多。
首先還是申明乙個logger物件,用他來呼叫各種logger的方法,一開始初始化了幾個級別的日誌logger收集器。
隨後就是new乙個新的logger並將位址返回分配給它們。這種日誌管理的方法真給人一種很清爽的感覺,而且外面可以基於這些最基礎的東西再做二次的定製。也非常靈活。後面寫東西會嘗試多用用看。再來補這篇文章。先占個坑
to be continue...
Golang學習日誌
變數賦值 golang中所有的變數都是值賦值,那麼陣列 chan map等,需要make的物件是怎麼操作的?自測發現 這些需要make的物件是引用賦值,也就是說新變數和舊變數操作的是同乙個記憶體空間。但是我們自己定義的struct都會把裡面的成員乙個乙個的複製過去。如果我們struct裡有陣列 ch...
golang學習日誌 19 12 6
利用函式strconv.atoi 返回 乙個是轉換結果,乙個是是否轉換成功 strconv.atoi str 練習1 判斷是否是素數 package isprime import fmt func isprimenumber i int bool return flag func main if f...
Golang基礎 日誌管理
所有日誌資訊列印時都帶有時間,且顏色為紅色 每種級別日誌列印都提供了三個函式 日誌擴充套件名為log func println v inte ce log.println 列印日誌資訊 panicln is equivalent to println followed by a call to pa...