我的应用程序需要通过stdout将日志以JSON格式流畅地发送。
当我试图处理紧急情况并使用&std::panic::PanicInfo
将std::panic::set_hook
安排为JSON时,我找不到从&PanicInfo
检索回溯的方法。
有没有一种方法可以从自定义 Hook 中的 panic 中检索回溯?
最佳答案
PanicInfo
不包含回溯,但您可以自己在 panic 钩子(Hook)中捕获它。
从 set_hook
文档中:
由于应急钩子(Hook)在展开之前先运行,因此您可以使用@hellow已经提到的 backtrace
crate 自己在应急钩子(Hook)中捕获回溯:panic::set_hook(Box::new(|panic_info| {
let backtrace = Backtrace::new();
// Do something with backtrace and panic_info.
}));
关于logging - 从Rust的钩子(Hook) panic 中检索回溯?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54917373/