Golang log模塊用法

Golang log包學習

Log模塊簡介

Golang log模塊提供了Print、Panic、Fatal三類接口,對每一類接口其提供了3中調用方式,分別是 “Xxxx 、 Xxxxln 、Xxxxf”,基本和fmt中的相關函數類似。
區別

  • log.Fatal接口,會先將日誌內容打印到標準輸入,接着直接調用os.exit(1)接口,退出程序並返回狀態1,由於是直接退出,defer函數不會被調用。
  • log.Panic接口,該函數把日誌內容輸出到標準錯誤後調用panic函數,defer函數不會被調用。

Log模塊使用方法

創建Log文件

Logfile := os.Create(LogfleName)

使用os模塊提供的Create方法可以很方便的創建文件,如果需要隨時間生成Log文件的話,可以將LogfileName隨時間命名,使用time模塊。


生成Log對象

TestLog := log.New(Logfile, "[Info]", log.Llongfile)

使用log模塊New函數生成Log對象,其中Logfile爲輸出位置,是io.Writer對象;第二個參數爲前綴,第三個參數爲打印標記,這兩個參數影響打印格式。


可以通過如下函數修改前綴和標記及輸出。

TestLog.SetPrefix("[Debug]")
Testlog.SetOutput()
Testlog.SetFlags()

其Flag可以是以下值,或以下值或的值。

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

示例如下:

package main
import (
    "log"
    "os"
)
func main() {
    logName := "Test.log"
    logfile, err := os.Create(logName)
    defer logfile.Close()
    if err != nil {
        log.Fateln("Open log file error.")
    } 
    Testlog := log.New(logfile, "[Test]", log.Ldate | log.Ltime)
    Testlog.Println("A test message.")
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章