簡單介紹Go語言常用的打log方式
文章介紹了3種常用的打log的方式,並賦上了註解
先寫上注意事項,三種方法建議分開測,因為可能在第一種的Fatal會終止執行,Fatal和Panic和Print的區別在於,Fatal會儲存日誌並終止程式,Panic會儲存日誌並丟出異常終止程式,Print會儲存日誌但是程式繼續
main.go
package main import ( "log" "bytes" "fmt" "os" "github.com/astaxie/beego/logs" ) func main() { //1.日誌寫入一段快取裡 var buf bytes.Buffer logger := log.New(&buf, "logger: ", log.Llongfile)//三個引數對應輸出物件,字首,檔名然後整合成字首 logger.Print("Hello, log file!") //實際log資訊 fmt.Println(&buf) //2.日誌寫入一段檔案裡,執行完重新整理工程,會有檔案debug.log開啟來看 fileName := "debug.log" //在工程路徑下和src同級,也可以寫絕對路徑,不過要注意轉義符 logFile,err := os.Create(fileName) //建立該檔案,返回控制程式碼 defer logFile.Close() //確保檔案在該函式執行完以後關閉 if err != nil { log.Fatalln("open file error !") } //庫裡的log包不存在級別,只有Print,Fatal,Panic三種,想要7種級別,可以用syslog包或者框架 debugLog := log.New(logFile,"",log.Llongfile) debugLog.Print("找到一個低階bug,低階別的日誌報告,執行debug記錄後繼續執行") debugLog.Fatal("發現一個嚴重bug,日誌已記錄,程式在此終止") debugLog.Panic("哎呀,我沒有被執行,好慘") //3.使用beego框架的log包進行log處理 ,對應7種級別 logInstance:=logs.GetLogger() logInstance.Println("this is a message of http") //an official log.Logger with prefix ORM logs.GetLogger("ORM").Println("this is a message of orm") logs.Debug("my book is bought in the year of ", 2016) logs.Info("this %s cat is %v years old", "yellow", 3) logs.Warn("json is a type of kv like", map[string]int{"key": 2016}) logs.Error(1024, "is a very", "good game") logs.Critical("oh,crash") logs.Notice("fuck") logs.Alert("alert") logs.Emergency("emergency") }
第二種
main.go
package main import ( "os" "log" ) func main() { file, err := os.OpenFile("./testLog/test.log", os.O_CREATE | os.O_WRONLY | os.O_APPEND,os.ModePerm) if err != nil { log.Fatalln(err) } logger := log.New(file, "", log.LstdFlags|log.Llongfile) logger.Println("日誌1.") logger.Println("日誌23") }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2923581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單介紹Go 語言單例模式Go單例模式
- 簡單介紹Go 語言常見的一些坑Go
- C語言-GCC的簡單介紹C語言GC
- groovy 程式語言簡單介紹
- Go語言介紹Go
- 簡單介紹redis加鎖常用幾種方式Redis
- Go語言工具簡介 - HoneybadgerGo
- Go語言學習(1) - 簡介Go
- 簡單介紹pytorch中log_softmax的實現PyTorch
- GO語言一個簡單的工程Go
- Go語言詳細介紹:logo和版本Go
- go語言標準庫 - logGo
- JavaScript return語句簡單介紹JavaScript
- Go 語言開源 CI/CD 容器 Drone 介紹Go
- 兄弟連golang神技(1)-關於 Go 語言的介紹Golang
- Snow——簡單易用的 Go 語言業務框架Go框架
- 一、Go語言基礎:入門應用簡介及常用命令Go
- 簡單介紹Go 字串比較的實現示例Go字串
- Go語言開發的Web框架都有哪些?詳細介紹GoWeb框架
- Go 語言的 GOPATH 設定方式Go
- Go語言常用的運算子篇Go
- Webpack 的簡單介紹Web
- AOP的簡單介紹
- Go語言實現簡單的反序列化Go
- 簡單介紹MySQL開啟事務的兩種方式MySql
- Go語言簡史Go
- DNS常用術語介紹DNS
- go語言實現ssh打隧道Go
- form表單的簡單介紹ORM
- 簡單介紹C語言使用四種方法初始化結構體C語言結構體
- golang 學習筆記:第 1 節:GO 語言介紹Golang筆記
- Flownet 介紹 及光流的簡單介紹
- java語言的入門介紹Java
- 簡單介紹python自動化運維常用庫Python運維
- 部署Go語言程式的N種方式Go
- 簡單介紹python連線telnet和ssh的兩種方式Python
- 簡單介紹apache虛擬主機配置的三種方式Apache
- 使用 Go 語言實現簡單的文字識別(OCR)Go