zoukankan      html  css  js  c++  java
  • golang在日志中打印堆栈信息

    使用debug.Stack()

    package main
     
    import (
        "fmt"
        "runtime/debug"
    )
     
    func test1() {
        test2()
    }
     
    func test2() {
        test3()
    }
     
    func test3() {
        // 可以通过 debug.PrintStack() 直接打印,也可以通过 debug.Stack() 方法获取堆栈然后自己打印
        fmt.Printf("%s", debug.Stack())
        debug.PrintStack()
    }
     
    func main() {
        test1()
    }
     
    ------------------------------------
     
    $ go run test_stacktrace.go
     
    goroutine 1 [running]:
    runtime/debug.Stack(0x0, 0x0, 0x0)
            /usr/lib/golang/src/runtime/debug/stack.go:24 +0x80
    main.test3()
            /tmp/test_stacktrace.go:17 +0x24
    main.test2()
            /tmp/test_stacktrace.go:13 +0x14
    main.test1()
            /tmp/test_stacktrace.go:9 +0x14
    main.main()
            /tmp/test_stacktrace.go:22 +0x14
     
    goroutine 1 [running]:
    runtime/debug.Stack(0x0, 0x0, 0x0)
            /usr/lib/golang/src/runtime/debug/stack.go:24 +0x80
    runtime/debug.PrintStack()
            /usr/lib/golang/src/runtime/debug/stack.go:16 +0x18
    main.test3()
            /tmp/test_stacktrace.go:18 +0x101
    main.test2()
            /tmp/test_stacktrace.go:13 +0x14
    main.test1()
            /tmp/test_stacktrace.go:9 +0x14
    main.main()
            /tmp/test_stacktrace.go:22 +0x14
     
  • 相关阅读:
    各种犯下的错误(2)
    c3p0封装
    servlet模板
    各种犯下的错误(1)
    连接池的创建与封装
    jdbc连接用工具类
    Java从入门到入坟(1)
    小米商城网页版(js+css)
    JavaScript学习篇(9)
    JavaScript学习篇(8)
  • 原文地址:https://www.cnblogs.com/peteremperor/p/14467192.html
Copyright © 2011-2022 走看看