项目作者: snovichkov

项目描述 :
Zap GELF
高级语言: Go
项目地址: git://github.com/snovichkov/zap-gelf.git
创建时间: 2018-03-01T01:09:02Z
项目社区:https://github.com/snovichkov/zap-gelf

开源协议:MIT License

下载


Zap GELF GitHub license Go Report Card Build Status Coverage Status GoDoc

Zap GELF added availability to zap logger send your logs to Graylog server over UDP. All zap fields will be sent as
additional fields on Graylog.

Installation

  1. go get -u github.com/snovichkov/zap-gelf

Features

  • Use fast zap JSON serializer
  • Support chunking over UPD
  • Support gzip/zlib compression

Quick Start

  1. package main
  2. import (
  3. "os"
  4. "go.uber.org/zap"
  5. "go.uber.org/zap/zapcore"
  6. "github.com/snovichkov/zap-gelf"
  7. )
  8. func main() {
  9. var (
  10. err error
  11. host string
  12. core zapcore.Core
  13. )
  14. if host, err = os.Hostname(); err != nil {
  15. panic(err)
  16. }
  17. if core, err = gelf.NewCore(
  18. gelf.Addr("127.0.0.1:12001"),
  19. gelf.Host(host),
  20. ); err != nil {
  21. panic(err)
  22. }
  23. var logger = zap.New(
  24. core,
  25. zap.AddCaller(),
  26. zap.AddStacktrace(zap.LevelEnablerFunc(func(l zapcore.Level) bool {
  27. return core.Enabled(l)
  28. })),
  29. )
  30. defer logger.Sync()
  31. logger.
  32. With(
  33. zap.String("with", "field"),
  34. ).
  35. Error(
  36. "An error was accrued",
  37. zap.String("an_filed", "Hello word!"),
  38. zap.String("id", "an_id"),
  39. )
  40. logger.
  41. Sugar().
  42. With(
  43. "an_filed", "Hello word!",
  44. "id", "an_id",
  45. ).
  46. Error("An error was accrued")
  47. }