go-log库

简介

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")
}

go-log库
https://tsy244.github.io/2024/08/13/go/go-log库/
Author
August Rosenberg
Posted on
August 13, 2024
Licensed under