log

优质
小牛编辑
130浏览
2023-12-01

import "log"

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


  • Constants
  • type Logger
  • func Flags() int
  • func SetFlags(flag int)
  • func Prefix() string
  • func SetPrefix(prefix string)
  • func SetOutput(w io.Writer)
  • func Printf(format string, v ...interface{})
  • func Print(v ...interface{})
  • func Println(v ...interface{})
  • func Fatalf(format string, v ...interface{})
  • func Fatal(v ...interface{})
  • func Fatalln(v ...interface{})
  • func Panicf(format string, v ...interface{})
  • func Panic(v ...interface{})
  • func Panicln(v ...interface{})
  • Examples


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