Log模块主要三类方法
Print() 用于输出日志
Fatal() 输出日志的同时,调用os.Exit(1)方法退出,小提示:如果函数下存在defer不会执行
Panic() 输出日志的同时,调用panic方法
跟fmt.Print不同的地方在于,fmt.Print,fmt.Fatal,fmt.Pacni属于Stdout输出,log.Print属于Stderr输出
Log模块写入文件
New() 自定义log文件,将输出数据输入log文件
设置日志前缀
设置日志格式
Ldate 2018/01/01
Ltime 12:01:10
Lmicroseconds 12:01:10.605536
Llongfile go_pro/src/log/Log.go:45
Lshortfile Log.go:45
*Logger.Print()
*Logger.Fatal()
*Logger.Panic()
package main
import (
"log"
"fmt"
"os"
)
func main() {
sayPrint()
sayFalal()
sayPanic()
newLog()
//fmt.Print("fmt print") //Stdout
}
func sayPrint() {
log.Print("sayPrint") //Stderr
}
func sayFalal() {
defer fmt.Println("end")
log.Fatal("sayFalal")
}
func sayPanic() {
defer fmt.Println("end")
log.Panic("sayOne")
}
func newLog() {
//创建日志文件
fileName := "app.log"
logFile, err := os.Create(fileName)
if err != nil {
panic(err)
}
defer logFile.Close()
//自定义输出日志
//Ldate Ltime
log := log.New(logFile, "[Info]", log.Ldate|log.Lmicroseconds|log.Llongfile)
log.Println("newLog")
}