version: 1.10
package log
import "log"
概述
log 包实现了一个简单的日志记录包。它定义了一个支持格式化输出的 Logger 类型。它还有一个预定义的“标准” Logger ,可以通过 Print[f|ln] , Fatal[f|ln] , Panic[f|ln] 等函数来访问,与手动创建一个 Logger 相比,“标准” Logger 更易于使用。 logger 会把日志打印到标准错误(屏幕),每条日志都带有日期和时间信息。每条日志占据独立的一行:如果被打印的日志没有换行符, logger 会自动添加。 Fatal 函数在打印日志后会调用 os.Exit(1) 。 Panic 函数在打印日志后会调用 panic 函数。
索引
- Constants
- func Fatal(v …interface{})
- func Fatalf(format string, v …interface{})
- func Fatalln(v …interface{})
- func Flags() int
- func Output(calldepth int, s string) error
- func Panic(v …interface{})
- func Panicf(format string, v …interface{})
- func Panicln(v …interface{})
- func Prefix() string
- func Print(v …interface{})
- func Printf(format string, v …interface{})
- func Println(v …interface{})
- func SetFlags(flag int)
- func SetOutput(w io.Writer)
- func SetPrefix(prefix string)
- type Logger
- func New(out io.Writer, prefix string, flag int) *Logger
- func (l *Logger) Fatal(v …interface{})
- func (l *Logger) Fatalf(format string, v …interface{})
- func (l *Logger) Fatalln(v …interface{})
- func (l *Logger) Flags() int
- func (l *Logger) Output(calldepth int, s string) error
- func (l *Logger) Panic(v …interface{})
- func (l *Logger) Panicf(format string, v …interface{})
- func (l *Logger) Panicln(v …interface{})
- func (l *Logger) Prefix() string
- func (l *Logger) Print(v …interface{})
- func (l *Logger) Printf(format string, v …interface{})
- func (l *Logger) Println(v …interface{})
- func (l *Logger) SetFlags(flag int)
- func (l *Logger) SetOutput(w io.Writer)
- func (l *Logger) SetPrefix(prefix string)
例子
文件
常量
- const (
- 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. overrides Llongfile
- LUTC // 如果 Ldate 或 Ltime 被赋值,使用 UTC 时区而不是本地时区
- LstdFlags = Ldate | Ltime // 标准 logger 的初始值
- )
这些标志定义了 Logger 打印的每个日志的前缀文本。这些标志通过或操作组合来控制打印格式。标志组合的先后顺序没有影响。当 Llongfile 或 Lshortfile 被指定时,前缀文本会以冒号结尾。举个例子, Ldate | Ltime (或 LstdFlags ) 标志组合会产生如下格式的日志:
2009/01/23 01:23:23 message
而 Ldate | Ltime | Lmicroseconds | Llongfile 标志组合会产生如下格式的日志:
2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
func Fatal ¶
- func Fatal(v ...interface{})
Fatal 函数等价于调用 Print() 后调用 os.Exit(1) 。
func Fatalf ¶
- func Fatalf(format string, v ...interface{})
Fatalf 函数等价于调用 Printf() 后调用 os.Exit(1) 。
func Fatalln ¶
- func Fatalln(v ...interface{})
Fatalln 函数等价于调用 Println() 后调用 os.Exit(1) 。
func Flags ¶
- func Flags() int
Flags 函数返回标准 logger 的输出参数。
func Output ¶
Output 函数打印一个 logging 事件的信息。打印的内容包括日志内容以及被 Logger 的标志指定的前缀文本。如果参数 s 的最后一个字符不是换行符,会自动补上换行符。如果 Llongfile 或 Lshortfile 被指定,参数 calldepth 表示计算文件名和行数时,忽略的函数调用的次数。如果值为1会打印函数调用者的详细信息。
func Panic ¶
- func Panic(v ...interface{})
Panic 函数等价于调用 Print() 后调用 panic() 。
func Panicf ¶
- func Panicf(format string, v ...interface{})
Panicf 函数等价于调用 Printf() 后调用 panic() 。
func Panicln ¶
- func Panicln(v ...interface{})
Panicln 函数等价于调用 Println() 后调用 panic() 。
func Prefix ¶
- func Prefix() string
Prefix 函数返回标准 logger 的输出前缀。
func Print ¶
- func Print(v ...interface{})
Print 函数调用 Output 函数来使用标准 logger 打印日志。参数按照 fmt.Print 函数的方式处理。
func Printf ¶
- func Printf(format string, v ...interface{})
Printf 函数调用 Output 函数来使用标准 logger 打印日志。参数按照 fmt.Printf 函数的格式处理。
func Println ¶
- func Println(v ...interface{})
Println 函数调用 Output 函数来使用标准 logger 打印日志。参数按照 fmt.Println 函数的格式处理。
func SetFlags ¶
- func SetFlags(flag int)
SetFlags 函数设置标准 logger 的打印标志。
func SetOutput ¶
SetOutput 函数设置标准 logger 的输出目标。
func SetPrefix ¶
- func SetPrefix(prefix string)
SetPrefix 函数设置标准 logger 的打印前缀文本。
type Logger ¶
- type Logger struct {
- // contains filtered or unexported fields
- }
一个 Logger 表示一个激活的 logging 对象,它可以向 io.Writer 写入多条记录。每次 logging 操作调用一次 Writer 的 Write 方法。一个 Logger 可以被多个 goroutines 并发使用,它保证按顺序地调用 Writer 。
var (
buf bytes.Buffer
logger = log.New(&buf, "logger: ", log.Lshortfile)
)
logger.Print("Hello, log file!")
fmt.Print(&buf)
// Output:
// logger: example_test.go:19: Hello, log file!
func New ¶
New 函数创建一个新的 Logger 。参数 out 设置日志信息的输出位置。参数 prefix 出现在每条日志的开始。参数 flag 定义 logging 的属性。
func (*Logger) Fatal ¶
- func (l *Logger) Fatal(v ...interface{})
Fatal 方法等价于调用 l.Print() 后调用 os.Exit(1) 。
func (*Logger) Fatalf ¶
Fatalf 方法等价于调用 l.Printf() 后调用 os.Exit(1) 。
func (*Logger) Fatalln ¶
- func (l *Logger) Fatalln(v ...interface{})
Fatalln 方法等价于调用 l.Println() 后调用 os.Exit(1) 。
func (*Logger) Flags ¶
Flags 方法返回 logger 的输出标志。
func (*Logger) Output ¶
Output 方法打印一个 logging 事件的信息。打印的内容包括日志内容以及被 Logger 的标志指定的前缀文本。如果参数 s 的最后一个字符不是换行符,会自动补上换行符。参数 calldepth 一般用来恢复 PC ,尽管当前所有预定义的路径都是2。
var (
buf bytes.Buffer
logger = log.New(&buf, "INFO: ", log.Lshortfile)
infof = func(info string) {
logger.Output(2, info)
}
)
infof("Hello world")
fmt.Print(&buf)
// Output:
// INFO: example_test.go:36: Hello world
func (*Logger) Panic ¶
- func (l *Logger) Panic(v ...interface{})
Panic 方法等价于调用 l.Print() 后调用 panic() 。
func (*Logger) Panicf ¶
Panicf 方法等价于调用 l.Printf() 后调用 panic() 。
func (*Logger) Panicln ¶
- func (l *Logger) Panicln(v ...interface{})
Panicln 方法等价于调用 l.Println() 后调用 panic() 。
func (*Logger) Prefix ¶
Prefix 方法返回 logger 的输出前缀文本。
func (*Logger) Print ¶
- func (l *Logger) Print(v ...interface{})
Print 方法调用 l.Output 函数来使用 logger 打印日志。参数按照 fmt.Print 函数的格式处理。
func (*Logger) Printf ¶
Printf 方法调用 l.Output 函数来使用 logger 打印日志。参数按照 fmt.Printf 函数的格式处理。
func (*Logger) Println ¶
- func (l *Logger) Println(v ...interface{})
Println 方法调用 l.Output 函数来使用 logger 打印日志。参数按照 fmt.Println 函数的格式处理。
func (*Logger) SetFlags ¶
SetFlags 方法设置 logger 的打印标志。
func (*Logger) SetOutput ¶
SetOutput 方法设置 logger 的输出目标。
func (*Logger) SetPrefix ¶
SetPrefix 方法设置 logger 的打印前缀文本。