log
import "log"
log包实现了简单的日志服务。本包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”Logger,可以通过辅助函数Print[f|ln]、Fatal[f|ln]和Panic[f|ln]访问,比手工创建一个Logger对象更容易使用。Logger会打印每条日志信息的日期、时间,默认输出到标准错误。Fatal系列函数会在写入日志信息后调用os.Exit(1)。Panic系列函数会在写入日志信息后panic。
- func New(out io.Writer, prefix string, flag int) *Logger
- func (l *Logger) Flags() int
- func (l *Logger) SetFlags(flag int)
- func (l *Logger) Prefix() string
- func (l *Logger) SetPrefix(prefix string)
- func (l *Logger) Output(calldepth int, s string) error
- func (l *Logger) Printf(format string, v ...interface{})
- func (l *Logger) Print(v ...interface{})
- func (l *Logger) Println(v ...interface{})
- func (l *Logger) Fatalf(format string, v ...interface{})
- func (l *Logger) Fatal(v ...interface{})
- func (l *Logger) Fatalln(v ...interface{})
- func (l *Logger) Panic(v ...interface{})
- func (l *Logger) Panicf(format string, v ...interface{})
- func (l *Logger) Panicln(v ...interface{})
Examples
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的初始值 )
这些选项定义Logger类型如何生成用于每条日志的前缀文本。
type Logger
type Logger struct { // contains filtered or unexported fields }
Logger类型表示一个活动状态的记录日志的对象,它会生成一行行的输出写入一个io.Writer接口。每一条日志操作会调用一次io.Writer接口的Write方法。Logger类型的对象可以被多个线程安全的同时使用,它会保证对io.Writer接口的顺序访问。
Examplevar buf bytes.Buffer logger := log.New(&buf, "logger: ", log.Lshortfile) logger.Print("Hello, log file!") fmt.Print(&buf)
Output:
logger: example_test.go:16: Hello, log file!
func New
func New(out io.Writer, prefix string, flag int) *Logger
New创建一个Logger。参数out设置日志信息写入的目的地。参数prefix会添加到生成的每一条日志前面。参数flag定义日志的属性(时间、文件等等)。
func (*Logger) Flags
func (l *Logger) Flags() int
Flags返回logger的输出选项。
func (*Logger) SetFlags
func (l *Logger) SetFlags(flag int)
SetFlags设置logger的输出选项。
func (*Logger) Prefix
func (l *Logger) Prefix() string
Prefix返回logger的输出前缀。
func (*Logger) SetPrefix
func (l *Logger) SetPrefix(prefix string)
SSetPrefix设置logger的输出前缀。
func (*Logger) Output
func (l *Logger) Output(calldepth int, s string) error
Output写入输出一次日志事件。参数s包含在Logger根据选项生成的前缀之后要打印的文本。如果s末尾没有换行会添加换行符。calldepth用于恢复PC,出于一般性而提供,但目前在所有预定义的路径上它的值都为2。
func (*Logger) Printf
func (l *Logger) Printf(format string, v ...interface{})
Printf调用l.Output将生成的格式化字符串输出到logger,参数用和fmt.Printf相同的方法处理。
func (*Logger) Print
func (l *Logger) Print(v ...interface{})
Print调用l.Output将生成的格式化字符串输出到logger,参数用和fmt.Print相同的方法处理。
func (*Logger) Println
func (l *Logger) Println(v ...interface{})
Println调用l.Output将生成的格式化字符串输出到logger,参数用和fmt.Println相同的方法处理。
func (*Logger) Fatalf
func (l *Logger) Fatalf(format string, v ...interface{})
Fatalf等价于{l.Printf(v...); os.Exit(1)}
func (*Logger) Fatal
func (l *Logger) Fatal(v ...interface{})
Fatal等价于{l.Print(v...); os.Exit(1)}
func (*Logger) Fatalln
func (l *Logger) Fatalln(v ...interface{})
Fatalln等价于{l.Println(v...); os.Exit(1)}
func (*Logger) Panicf
func (l *Logger) Panicf(format string, v ...interface{})
Panicf等价于{l.Printf(v...); panic(...)}
func (*Logger) Panic
func (l *Logger) Panic(v ...interface{})
Panic等价于{l.Print(v...); panic(...)}
func (*Logger) Panicln
func (l *Logger) Panicln(v ...interface{})
Panicln等价于{l.Println(v...); panic(...)}
func Flags
func Flags() int
Flags返回标准logger的输出选项。
func SetFlags
func SetFlags(flag int)
SetFlags设置标准logger的输出选项。
func Prefix
func Prefix() string
Prefix返回标准logger的输出前缀。
func SetPrefix
func SetPrefix(prefix string)
SetPrefix设置标准logger的输出前缀。
func SetOutput
func SetOutput(w io.Writer)
SetOutput设置标准logger的输出目的地,默认是标准错误输出。
func Printf
func Printf(format string, v ...interface{})
Printf调用Output将生成的格式化字符串输出到标准logger,参数用和fmt.Printf相同的方法处理。
func Print
func Print(v ...interface{})
Print调用Output将生成的格式化字符串输出到标准logger,参数用和fmt.Print相同的方法处理。
func Println
func Println(v ...interface{})
Println调用Output将生成的格式化字符串输出到标准logger,参数用和fmt.Println相同的方法处理。
func Fatalf
func Fatalf(format string, v ...interface{})
Fatalf等价于{Printf(v...); os.Exit(1)}
func Fatal
func Fatal(v ...interface{})
Fatal等价于{Print(v...); os.Exit(1)}
func Fatalln
func Fatalln(v ...interface{})
Fatalln等价于{Println(v...); os.Exit(1)}
func Panicf
func Panicf(format string, v ...interface{})
Panicf等价于{Printf(v...); panic(...)}
func Panic
func Panic(v ...interface{})
Panic等价于{Print(v...); panic(...)}
func Panicln
func Panicln(v ...interface{})
Panicln等价于{Println(v...); panic(...)}