Go 语言 - 自定义 log

· 1min · Paxon Qiao
Table of Contents

Go 语言 - 自定义 log

Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base 
➜ tree
.
├── errors.log
├── go.mod
└── main.go

1 directory, 3 files

Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base 

main.go

package main

import (
 "io"
 "log"
 "os"
)

var (
 Trace   *log.Logger // 几乎任何东西
 Info    *log.Logger // 重要信息
 Warning *log.Logger // 警告
 Error   *log.Logger // 错误
)

func init() {
 file, err := os.OpenFile("errors.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
 if err != nil {
  log.Fatalln("无法打开错误 log 文件:", err)
 }

 Trace = log.New(io.Discard, "TRACE: ", log.Ldate|log.Ltime|log.Lshortfile)

 Info = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)

 Warning = log.New(os.Stdout, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)

 Error = log.New(io.MultiWriter(file, os.Stderr), "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
}

func main() {
 Trace.Println("鸡毛蒜皮的小事")
 Info.Println("一些特别的信息")
 Warning.Println("这是一个警告")
 Error.Println("出现了故障")
}

运行

Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base 
➜ go run .               
INFO: 2023/05/26 14:22:34 main.go:33: 一些特别的信息
WARNING: 2023/05/26 14:22:34 main.go:34: 这是一个警告
ERROR: 2023/05/26 14:22:34 main.go:35: 出现了故障

Code/go/go_log_demo via 🐹 v1.20.3 via 🅒 base 

errors.log

ERROR: 2023/05/26 14:22:34 main.go:35: 出现了故障


Categories Go
Tags Go