log
Go 语言标准库 log 包实现了简单的日志。
go
func main() {
log.Println("日志")
log.Panicln("panic日志")
log.Fatalln("错误日志")
}1
2
3
4
5
2
3
4
5
Fatal 会在写入日志信息后调用os.exit(1),panic 则会抛出panic
前缀
go
func (l *Logger) Prefix() string //获取前缀
func (l *Logger) SetPrefix(prefix string) //设置前缀1
2
3
2
3
例子
go
func main() {
log.SetPrefix("[main]")
log.Println("日志")
log.Panicln("panic日志")
}1
2
3
4
5
2
3
4
5
Flag
方法
go
func (l *Logger) Flags() int //访问
func (l *Logger) SetFlags(flag int) //设置1
2
3
2
3
常量
go
const (
Ldate = 1 << iota // 日期
Ltime // 时间
Lmicroseconds // 微秒
Llongfile // 完成文件名称
Lshortfile // 短文件名称
LUTC // 时区
Lmsgprefix // 前缀
LstdFlags = Ldate | Ltime // 初始值
)1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
例子
go
func main() {
log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmsgprefix | log.Ldate | log.Ltime)
log.Println("日志")
log.Panicln("panic日志")
}1
2
3
4
5
2
3
4
5
当然也可以使用log.SetOutput(w io.Writer)来设置日志的输出路径,也可以通过New方法创建自己的实例。
go
func New(out io.Writer, prefix string, flag int) *Logger1
总而言之,标准库的log包提供的功能并不够完善,我们通常会使用更加完善的第三方日志包,例如zap等等。
评论区留言准则:
1. 本评论区禁止传播封建迷信、吸烟酗酒、低俗色情、赌博诈骗等任何违法违规内容。
2. 当他人以不正当方式诱导打赏、私下交易,请谨慎判断,以防人身财产损失。
3. 请勿轻信各类招聘征婚、代练代抽、私下交易、购买礼包码、游戏币等广告信息,谨防网络诈骗。