package main import "log" func main(){ s := "my name is satori" log.Print(s) log.Println(s) log.Printf("%s",s) }
package main import ( "log" "fmt" ) func main(){ defer func() { fmt.Println("mmp") }() s := "my name is satori" log.Fatalln(s) }//2018/07/07 09:36:06 my name is satori //可以看到当执行完Fatal之后,defer里面的内容并没有执行
package main import ( "log" "fmt" ) func main(){ defer func() { fmt.Println("mmp") if err:=recover();err!=nil{ fmt.Println(err) } }() s := "my name is satori" log.Panicln(s) defer func() { print("-----------") }() } //mmp //2018/07/07 09:41:06 my name is satori //my name is satori //当遇见panic的时候会报错,会执行上面的recover,捕获错误,下面的不会打印
package main import ( "os" "log" ) //也可以打印到文件 func main(){ filename:="log.log" logfile,_:=os.Create(filename) defer logfile.Close() //Flags和Prefix分别可以获得log.Logger当前的日志抬头和前缀。 SetFlags ,SetPrefix 则可以用来设置日志抬头和前缀。 //Ldate = 1 << iota // 形如 2009/01/23 的日期 //Ltime // 形如 01:23:23 的时间 //Lmicroseconds // 形如 01:23:23.123123 的时间 //Llongfile // 全路径文件名和行号: /a/b/c/d.go:23 //Lshortfile // 文件名和行号: d.go:23 //LstdFlags = Ldate | Ltime // 日期和时间 logger := log.New(logfile,"[info]",log.Llongfile) logger.SetPrefix("satori") logger.Println("老子今") logger.Println("天就是") logger.SetFlags(1|6) logger.Println("要日了") logger.Println("李婉婉") }