0%

Linux 运行程序时如何保存堆栈(Linux如何把标准输出和错误输出 输出到一个文件里)

最近在使用golang开发中,并发量达到一定程度时就会发生panic,想看堆栈,但是因为是跑在k8中的程序,输出都是直接输出到标准输出的。也没有日志。

在本地调试的时候直接运行了go程序,输出也是一大堆,一下子就被刷掉了,所以要把输出输入到一个文件里。

一般这样

1
2
3
command > filename // 把标准输出重定向到一个新文件中
// 例如
./programmer > log.txt

但是这样,如果发生堆栈错误还是会直接输出到屏幕。无法保存。

使用以下方法

1
2
3
command > filename 2>&1 // 把标准输出和标准错误一起重定向到一个文件中
// 例如
./programmer > log.txt 2>&1

这样即可保存标准输出和错误输出。如果把“>”换成”>>”就是追加输出到文件