go 的 runtime 包提供一些控制 Go 程序运行时的操作,其中包括 go 环境变量1。
GOTRACEBACK
GOTRACEBACK 环境变量用于控制当 Go 程序 panic 时输出栈信息的多少。变量值可以为:
- none:不输出任何信息
- single:仅输出当前崩溃的 goroutine 信息(默认值)
- all:打印所有由用户创建的 goroutine 信息
- system:类似 all,并包含系统创建的 goroutine
- crash:类似 system,但不是直接 panic 退出,而是执行操作系统的一些操作。比如,在 Unix 系统上会生成 core dump
修改 GOTRACEBACK 有两种方式,通过 runtime/debug 包在代码里修改:
|
|
或者在程序启动时修改:
|
|
注意,通过 os.Setenv 来设置是无效的,因为程序以及启动了,设置太晚了2。
|
|