登录Julia时如何捕获完整的堆栈跟踪信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录Julia时如何捕获完整的堆栈跟踪信息相关的知识,希望对你有一定的参考价值。

我正在尝试编写自定义记录器。当前,当我登录时,我只是得到错误的名称及其发生在哪一行。如果我想记录完整的堆栈跟踪,我想我会使用LogLevel from the docs,但不清楚如何使用它来捕获完整的堆栈跟踪。我现在有以下内容:

using Logging
io = open("log.txt", "w+")
LogLevel(1000001) # see https://github.com/JuliaLang/julia/blob/2d5741174ce3e6a394010d2e470e4269ca54607f/base/logging.jl#L90-L98
logger = SimpleLogger(io)
global_logger(logger)

try
    a+1
catch e
    @warn "failure" exception=e
    @info("a global log message")
end

close(io)
答案

作为docs say

可以使用元组异常=(ex,bt)附加相关的回溯bt

所以尝试

@warn "failure" exception=(e, catch_backtrace())

以上是关于登录Julia时如何捕获完整的堆栈跟踪信息的主要内容,如果未能解决你的问题,请参考以下文章

sys.exc_info 在捕获和引发时不跟踪完整的堆栈跟踪?

如何打印 C++ 中捕获的异常的堆栈跟踪和 C++ 中的代码注入

为啥没有登录异常堆栈跟踪? [复制]

使用 sbt 和 testng 时,如何获取测试中抛出的异常的完整堆栈跟踪?

使用 Monolog 记录完整的堆栈跟踪

Kapt 注释处理 - 如何显示完整的堆栈跟踪