Go 语言 - 自定义 log

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: 出现了故障

posted @   寻月隐君  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示