Skip to content

log

Go 語言標准庫 log 包實現了簡單的日志。

go
func main() {
   log.Println("日志")
   log.Panicln("panic日志")
   log.Fatalln("錯誤日志")
}

Fatal 會在寫入日志信息後調用os.exit(1),panic 則會拋出panic

前綴

go
func (l *Logger) Prefix() string //獲取前綴

func (l *Logger) SetPrefix(prefix string) //設置前綴

例子

go
func main() {
  log.SetPrefix("[main]")
  log.Println("日志")
  log.Panicln("panic日志")
}

Flag

方法

go
func (l *Logger) Flags() int //訪問

func (l *Logger) SetFlags(flag int) //設置

常量

go
const (
   Ldate         = 1 << iota     // 日期
   Ltime                         // 時間
   Lmicroseconds                 // 微秒
   Llongfile                     // 完成文件名稱
   Lshortfile                    // 短文件名稱
   LUTC                          // 時區
   Lmsgprefix                    // 前綴
   LstdFlags     = Ldate | Ltime // 初始值
)

例子

go
func main() {
   log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmsgprefix | log.Ldate | log.Ltime)
   log.Println("日志")
   log.Panicln("panic日志")
}

當然也可以使用log.SetOutput(w io.Writer)來設置日志的輸出路徑,也可以通過New方法創建自己的實例。

go
func New(out io.Writer, prefix string, flag int) *Logger

總而言之,標准庫的log包提供的功能並不夠完善,我們通常會使用更加完善的第三方日志包,例如zap等等。

Golang學習網由www.golangdev.cn整理維護