16.调试

日志

日志能够帮助程序员来查找问题与分析问题

package main

import "log"

func main(){
    //输出一条日志信息
    log.Printf("This is a log message")
}

// 2021/01/28 08:51:12 This is a log message

记录致命错误

package main

import (
    "errors"
    "log"
)

func main(){
    var errFatal =errors.New("we only just started and we are crashing")
    log.Fatal(errFatal)
}

// 2021/01/28 08:53:30 we only just started and we are crashing
// exit status 1

将日志输出到文件

package main

import (
    "log"
    "os"
)

func main(){
    f,err := os.OpenFile("exmple.log",os.O_APPEND|os.O_CREATE,0666)
    if err != nil{
        log.Fatal(err)
    }

    defer f.Close()

    log.SetOutput(f)

    for i := 1;i<=5;i++{
        log.Printf("Log iterationg %d",i)
    }
}
package main

import (
    "log"
)

func main(){
    for i:= 1;i<=5;i++{
        log.Printf("Log iteration %d",i)
    }
}

//正常情况下会向终端打印
//可以使用重定向功能输出到文件: go run test.go > example.log 2>&1

使用fmt包

结合使用动词v和+来打印结构体中字段的名称

fmt.Printf("%+v\n",sonmeStruct)

使用Delve

安装Delve

go get github.com/derekparker/delve/comd/dlv

//查看是否安装成功
dlv --help

使用Delve

//执行程序
dlv debug test.go

//下断点,在函数echo上下断点
dlv break echo

//继续执行
continue

//使用print打印变量s
print s
© 版权声明
THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
四曲的头像-四曲博客

昵称

取消
昵称表情代码图片