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

log*_*ick 3 julia

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

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)
Run Code Online (Sandbox Code Playgroud)

pfi*_*seb 5

正如文档所说

bt可以使用元组附加关联的回溯exception=(ex,bt)

所以试试

@warn "failure" exception=(e, catch_backtrace())
Run Code Online (Sandbox Code Playgroud)