iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
1
自我挑戰組

Go從新學系列 第 21

[DAY 21]GO 的 LOG(一)

雖然 GO 裡已經有 fmt.print 這項函式了

但是 fmt.print 的函式偏簡單

比如沒有時間,也沒有源代碼的行數等

對於我們要排查問題,我們會使用 log 包

package main

import "log"

func main() {
	log.Println("IT鐵人競賽 DAY 21")
	log.Printf("IT鐵人競賽 DAY %d\n",21)
}

可以看出 log 自帶了時間時間軸

2019/10/07 21:03:32 IT鐵人競賽 DAY 21
2019/10/07 21:03:32 IT鐵人競賽 DAY 21

有了這些時間對於我們排查問題非常有用

如果我們 log 裡需要更多訊息

我們會在 main 函數前 新增一個 init 的函式

func init(){
	log.SetFlags(log.Ldate|log.Lshortfile)
}

在 SetFlags 裡設定我們需要的前綴詞

這個範例裡我們新增了 log.Ldate 和 log.Lshortfile

2019/10/07 log.go:6: IT鐵人競賽 DAY 21
2019/10/07 log.go:7: IT鐵人競賽 DAY 21

可以看得出來除了剛剛的時間軸還多了「文件和行號」

這邊是我們可以設定的前綴詞

const (
	Ldate         = 1 << iota     //日期示例: 2009/01/23
	Ltime                         //時間示例: 01:23:23
	Lmicroseconds                 //毫秒示例: 01:23:23.123123.
	Llongfile                     //絕對路徑和行號: /a/b/c/d.go:23
	Lshortfile                    //文件和行號: d.go:23.
	LUTC                          //日期時間轉為0時區的
	LstdFlags     = Ldate | Ltime //Go提供的標準抬頭訊息
)

https://ithelp.ithome.com.tw/upload/images/20191007/20121032wPrISrQl5u.png


上一篇
[DAY 20]GO 的 Recover
下一篇
[DAY 22]GO 的 LOG(二)
系列文
Go從新學26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言