package log

import "log"

log包实现了简单的日志服务。本包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”Logger,可以通过辅助函数Print[f|ln]、Fatal[f|ln]和Panic[f|ln]访问,比手工创建一个Logger对象更容易使用。Logger会打印每条日志信息的日期、时间,默认输出到标准错误。Fatal系列函数会在写入日志信息后调用os.Exit(1)。Panic系列函数会在写入日志信息后panic。

Index

Examples

Constants

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接口的顺序访问。

Example

var 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(...)}