go log包使用

func New(out io.Writer, prefix string, flag int) *Logger
新建一个Logger, out设置输出,一般是文件,或者是os.Sdtout,prefix设置日记打印前缀,比如[info] [error]等信息,flag设置时间,日期等信息,可选设置如下:

Constants

const (
    // 字位共同控制输出日志信息的细节。不能控制输出的顺序和格式。
    // 在所有项目后会有一个冒号:2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
    Ldate         = 1 << [iota](https://studygolang.com/static/pkgdoc/pkg/builtin.htm#iota)     // 日期:2009/01/23
    Ltime                         // 时间:01:23:23
    Lmicroseconds                 // 微秒分辨率:01:23:23.123123(用于增强Ltime位)
    Llongfile                     // 文件全路径名+行号: /a/b/c/d.go:23
    Lshortfile                    // 文件无路径名+行号:d.go:23(会覆盖掉Llongfile)
    LstdFlags     = [Ldate](https://studygolang.com/static/pkgdoc/pkg/log.htm#Ldate) | [Ltime](https://studygolang.com/static/pkgdoc/pkg/log.htm#Ltime) // 标准logger的初始值
)

简单的例子:

package main
import (
    "log"
    "os"
)

func main() {
    log := log.New(os.Stdout,"[info]: ",log.Ldate | log.Ltime | log.Llongfile)
    log.Output(0,"gfdlgdo")
}

输出

[info]: 2019/07/07 16:52:35 /usr/local/go/src/log/log.go:159: gfdlgdo

log模块主要提供了3类接口。分别是 “Print 、Panic 、Fatal ”,对每一类接口其提供了3中调用方式,分别是 "Xxxx 、 Xxxxln 、Xxxxf",基本和fmt中的相关函数类似.
对于 log.Fatal 接口,会先将日志内容打印到标准输出,接着调用系统的 os.exit(1) 接口,退出程序并返回状态 1 。但是有一点需要注意,由于是直接调用系统接口退出,defer函数不会被调用.
对于log.Panic接口,该函数把日志内容刷到标准错误后调用 panic 函数.
下面是一个Print的示例:

package main

import (
    "log"
)

func main(){
    arr := []int {2,3}
    log.Print("Print array ",arr,"\n")
    log.Println("Println array",arr)
    log.Printf("Printf array with item [%d,%d]\n",arr[0],arr[1])
}

输出结果:

2019/07/07 17:32:05 Print array [2 3]
2019/07/07 17:32:05 Println array [2 3]
2019/07/07 17:32:05 Printf array with item [2,3]

你可能感兴趣的:(go log包使用)