logrus
18.logrus
01.logrus基础
1.1 简介
Logrus是Go(golang)的结构化logger,与标准库logger完全API兼容,它有以下特点
- 完全兼容标准日志库,拥有七种日志级别:
Trace
,Debug
,Info
,Warning
,Error
,Fatal
andPanic
。 - 可扩展的Hook机制,允许使用者通过Hook的方式将日志分发到任意地方
- 如本地文件系统,logstash,elasticsearch或者mq等,或者通过Hook定义日志内容和格式等
- 可选的日志输出格式,内置了两种日志格式JSONFormater和TextFormatter,还可以自定义日志格式
- Field机制,通过Filed机制进行结构化的日志记录
- 线程安全
1.2 简单导报使用
1.3 日志级别
1.4 设置日志级别
1.5 字段
- Logrus鼓励通过日志字段进行谨慎的结构化日志记录,而不是冗长的、不可解析的错误消息。
- 例如,区别于使用
log.Fatalf("Failed to send event %s to topic %s with key %d")
- 你应该使用如下方式记录更容易发现的内容
1.6 默认字段
- 通常,将一些字段始终附加到应用程序的全部或部分的日志语句中会很有帮助。
- 例如,你可能希望始终在请求的上下文中记录
request_id
和user_ip
。 - 区别于在每一行日志中写上
log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})
- 你可以向下面的示例代码一样创建一个
logrus.Entry
去传递这些字段。
1.7 Hooks
- 你可以添加日志级别的钩子(Hook)。
- 例如,向异常跟踪服务发送
Error
、Fatal
和Panic
、信息到StatsD或同时将日志发送到多个位置,例如syslog。 - Logrus配有内置钩子,在
init
中添加这些内置钩子或你自定义的钩子 - GitHub参考(opens new window)
1.8 格式化
1.9 gin中使用logrus
- 记录日志
02.在gin中封装使用
2.0 目录结构
2.1 main.go
2.2 middleware/logger.ge
2.3 logging/logger.go
2.4 访问测试
go run main.go