简介
log
包是Go语言标准库的一部分,提供了基本的日志记录功能。它支持日志消息的格式化、日志输出位置的设置以及日志级别的管理。通过log
包,我们可以方便地记录程序运行中的各种信息,如调试信息、错误消息和普通运行日志。
使用
基础方法
主要就是几个方法
1 2 3 4 5 6 7 8 9
| log.Print() log.Printf() log.Println() log.Fatal() log.Fatalf() log.Fatalln() log.Panic() log.Panicf() log.Panicln()
|
日志输出的位置
可以通过log.SetOutput()
将函数重定向到其他的位置比如文件,或者是日志处理器
1 2 3 4 5 6 7 8
| func TestLogIntoFile() { file, err := os.OpenFile("log.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatalln("Failed to open log file:", err) } log.SetOutput(file) log.Println("This is a log message") }
|
自定义Logger
我们可以通过log.New()
函数创建自定义的Logger,指定输出位置、前缀和日志格式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| go package main
import ( "log" "os" )
func main() { file, err := os.OpenFile("custom.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatal(err) } defer file.Close()
customLogger := log.New(file, "CUSTOM: ", log.Ldate|log.Ltime|log.Lshortfile) customLogger.Println("This is a message from the custom logger") }
|
日志层级管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| go package main
import ( "log" "os" )
func main() { file, err := os.OpenFile("custom.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatal(err) } defer file.Close()
customLogger := log.New(file, "CUSTOM: ", log.Ldate|log.Ltime|log.Lshortfile) customLogger.Println("This is a message from the custom logger") }
|