簡單介紹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
- Go語言介紹Go
- groovy 程式語言簡單介紹
- Go語言詳細介紹:logo和版本Go
- 關於C語言的簡單介紹C語言
- 簡單介紹redis加鎖常用幾種方式Redis
- Go 語言簡介(上)— 語法Go
- javascript函數語言程式設計簡單介紹JavaScript函數程式設計
- Go語言學習(1) - 簡介Go
- Go語言工具簡介 - HoneybadgerGo
- GO語言一個簡單的工程Go
- Kotlin語言極簡介紹Kotlin
- javascript呼叫函式的方式簡單介紹JavaScript函式
- 提高jquery效能的常用技巧簡單介紹jQuery
- jQuery常用的動畫函式簡單介紹jQuery動畫函式
- javascript函式呼叫方式簡單介紹JavaScript函式
- Go 語言的網路程式設計簡介Go程式設計
- JavaScript return語句簡單介紹JavaScript
- javascript with()語句用法簡單介紹JavaScript
- js清除閉包的通常方式簡單介紹JS
- jquery自定義事件的使用方式簡單介紹jQuery事件
- 原生js的常用dom元素操簡單介紹JS
- Go 語言開源 CI/CD 容器 Drone 介紹Go
- Html 5.2 的簡單介紹及新增元素 <dialog></dialog>HTML
- fx 簡單介紹 [Go Hack 2017]Go
- Snow——簡單易用的 Go 語言業務框架Go框架
- 兄弟連golang神技(1)-關於 Go 語言的介紹Golang
- javascript實現繼承方式簡單介紹JavaScript繼承
- alertify提示外掛使用方式簡單介紹
- 簡單介紹Go 字串比較的實現示例Go字串
- 一、Go語言基礎:入門應用簡介及常用命令Go
- css引入外部css檔案的方式簡單介紹CSS
- js宣告陣列的幾種方式簡單介紹JS陣列
- Go 語言的 GOPATH 設定方式Go
- 使用Go語言實現簡單MapReduce框架Go框架
- Go語言簡史Go