温馨提示×

Golang日志中异常信息怎么捕获

小樊
49
2026-01-07 17:20:21
栏目: 编程语言

在Golang中,可以使用log包来记录日志。要捕获异常信息,可以使用recover函数来捕获panic,并将其记录到日志中。以下是一个简单的示例:

package main

import (
	"log"
	"os"
)

func main() {
	defer func() {
		if r := recover(); r != nil {
			log.Printf("捕获到异常: %v", r)
			// 可以选择将日志输出到文件或其他地方
			// log.SetOutput(os.Stdout) // 设置日志输出到标准输出
		}
	}()

	// 这里是一些可能引发异常的代码
	panic("发生了一个错误")
}

在这个示例中,我们使用defer关键字定义了一个匿名函数,该函数会在main函数执行完毕后被调用。在这个匿名函数中,我们使用recover函数来捕获可能发生的panic。如果捕获到异常,我们将其记录到日志中。

需要注意的是,recover函数只能在defer语句中使用,因为它需要在panic发生后才能捕获到异常。此外,recover函数只能捕获当前goroutine中的panic,无法捕获其他goroutine中的异常。如果需要捕获其他goroutine中的异常,可以使用channel或者其他同步机制来实现。

0