Go语言程序记录日志

许多软件系统运行中需要日志文件。Go语言程序中,输出日志需要使用包"log",编写程序十分简单。

像Java语言程序,输出日志时,往往需要使用开源的软件包来实现,编写程序稍微复杂一些。

Go语言的包"log"中,提供了三类借口,分别是Print(一般的log,进程退出代码为0即正常)、Panic(意外的log,进程退出代码为2)和Fatal(致命的log,进程退出代码为1)。

这里分别给出三个有个log的程序及其运行结果。

Go语言程序之一(Print):

// log project main.go
package main

import (
        "log"
)

func main() {
        no := []int{1, 2}

        log.Print("Print no ", no, "\n")
        log.Println("Println no", no)
        log.Printf("Printf no with item [%d,%d]\n", no[0], no[1])
}

程序运行结果(Print):

2017/08/11 12:43:38 Print no [1 2]
2017/08/11 12:43:38 Println no [1 2]
2017/08/11 12:43:38 Printf no with item [1,2]
成功: 进程退出代码 0.

Go语言程序之二(Panic):

// log3 project main.go
package main

import (
        "log"
)

func main() {
        no := []int{1, 2}

        log.Panicln("Println no", no)
}

程序运行结果(Panic):

2017/08/11 12:40:07 Println no [1 2]
panic: Println no [1 2]


goroutine 1 [running]:
log.Panicln(0xc42003ff50, 0x2, 0x2)
        /usr/local/go/src/log/log.go:344 +0xc0
main.main()
        /home/lin/go/src/log3/main.go:11 +0xe3
错误: 进程退出代码 2.

Go语言程序之三(Fatal):

// log2 project main.go
package main

import (
        "log"
)

func main() {
        no := []int{1, 2}

        log.Fatalln("Println no", no)
}

程序运行结果(Fatal):

2017/08/11 12:37:38 Println no [1 2]
错误: 进程退出代码 1.

程序说明:(略)