log包的使用
2019-01-09 本文已影响0人
yongfutian
log包的使用
功能:log包实现了简单的日志服务。
本包定义了Logger类型,该类型提供了一些格式化输出的方法。
本包也提供了一个预定义的“标准”Logger,可以通过辅助函数Print[f|ln]、Fatal[f|ln]和Panic[f|ln]访问,比手工创建一个Logger对象更容易使用。
Logger会打印每条日志信息的日期、时间,默认输出到标准错误。Fatal系列函数会在写入日志信息后调用os.Exit(1)。Panic系列函数会在写入日志信息后panic
1、falg设置
func Flags() int //Flags返回标准logger的输出选项
func SetFlags(flag int) //SetFlags设置标准logger的输出选项
2、前缀设置
func Prefix() string //Prefix返回标准logger的输出前缀
func SetPrefix(prefix string) //SetPrefix设置标准logger的输出前缀
3、输出目的地设置
func SetOutput(w io.Writer) //SetOutput设置标准logger的输出目的地,默认是标准错误输出
4、logger类型
Logger类型表示一个活动状态的记录日志的对象,它会生成一行行的输出写入一个io.Writer接口。每一条日志操作会调用一次io.Writer接口的Write方法。Logger类型的对象可以被多个线程安全的同时使用,它会保证对io.Writer接口的顺序访问
const (
// 字位共同控制输出日志信息的细节。不能控制输出的顺序和格式。
// 在所有项目后会有一个冒号:2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
Ldate = 1 << 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 | Ltime // 标准logger的初始值
)
var buf bytes.Buffer
logger := log.New(&buf, "logger: ", log.Lshortfile)
logger.Print("Hello, log file!")
fmt.Print(&buf)
5、print系列函数
func Print(v ...interface{}) //Print调用Output将生成的格式化字符串输出到标准logger,参数用和fmt.Print相同的方法处理
func Printf(format string, v ...interface{}) //Printf调用Output将生成的格式化字符串输出到标准logger,参数用和fmt.Printf相同的方法处理。
func Println(v ...interface{}) //Println调用Output将生成的格式化字符串输出到标准logger,参数用和fmt.Println相同的方法处理。
6、Fatal系列函数
func Fatal(v ...interface{}) //Fatal等价于{Print(v...); os.Exit(1)}
func Fatalf(format string, v ...interface{}) //Fatalf等价于{Printf(v...); os.Exit(1)}
func Fatalln(v ...interface{}) //Fatalln等价于{Println(v...); os.Exit(1)}
7、Panic系列函数
func Panic(v ...interface{}) //Panic等价于{Print(v...); panic(...)}
func Panicf(format string, v ...interface{})
func Panicln(v ...interface{})