go里面比较成熟的日志框架了解过没有

题目来源:高德

答案:

golang日志库golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数,对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持。所以催生了很多第三方的日志库,但是在golang的世界里,没有一个日志库像slf4j那样在Java中具有绝对统治地位。golang中,流行的日志框架包括logrus、zap、zerolog、seelog等。
logrus特性完全兼容golang标准库日志模块:logrus拥有六种日志级别:debug、info、warn、error、fatal和panic,这是golang标准库日志模块的API的超集。如果您的项目使用标准库日志模块,完全可以以最低的代价迁移到logrus上。

  1. import (
  2. log "github.com/sirupsen/logrus"
  3. )
  4. func main() {
  5. log.WithFields(log.Fields{
  6. "animal": "walrus",
  7. }).Info("A walrus appears")
  8. }
  9. Logger
  10. import (
  11. "github.com/sirupsen/logrus"
  12. "os"
  13. )
  14. // logrus提供了New()函数来创建一个logrus的实例。
  15. // 项目中,可以创建任意数量的logrus实例。
  16. var log = logrus.New()
  17. func main() {
  18. // 为当前logrus实例设置消息的输出,同样地,
  19. // 可以设置logrus实例的输出到任意io.writer
  20. log.Out = os.Stdout
  21. // 为当前logrus实例设置消息输出格式为json格式。
  22. // 同样地,也可以单独为某个logrus实例设置日志级别和hook,这里不详细叙述。
  23. log.Formatter = &logrus.JSONFormatter{}
  24. log.WithFields(logrus.Fields{
  25. "animal": "walrus",
  26. "size": 10,
  27. }).Info("A group of walrus emerges from the ocean")
  28. }