From 00af769d89daa0012cfbc3790cede13b6cda0937 Mon Sep 17 00:00:00 2001 From: Sean Liao Date: Thu, 2 Apr 2020 00:52:02 +0200 Subject: [PATCH] add log format option --- logging/gokit.go | 5 ++++- logging/logrus.go | 5 ++++- server/server.go | 7 ++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/logging/gokit.go b/logging/gokit.go index b5137fa4..dac4ce8b 100644 --- a/logging/gokit.go +++ b/logging/gokit.go @@ -9,8 +9,11 @@ import ( ) // NewGoKit creates a new Interface backed by a GoKit logger -func NewGoKit(l Level) Interface { +func NewGoKit(l Level, format string) Interface { logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr)) + if format == "json" { + logger = log.NewJSONLogger(log.NewSyncWriter(os.Stderr)) + } logger = level.NewFilter(logger, l.Gokit) logger = log.With(logger, "ts", log.DefaultTimestampUTC, "caller", log.DefaultCaller) return gokit{logger} diff --git a/logging/logrus.go b/logging/logrus.go index 8ee64141..b4f9d8e9 100644 --- a/logging/logrus.go +++ b/logging/logrus.go @@ -7,10 +7,13 @@ import ( ) // NewLogrus makes a new Interface backed by a logrus logger -func NewLogrus(level Level) Interface { +func NewLogrus(level Level, format string) Interface { log := logrus.New() log.Out = os.Stderr log.Level = level.Logrus + if format == "json" { + log.Formatter = &logrus.JSONFormatter{} + } return logrusLogger{log} } diff --git a/server/server.go b/server/server.go index 748fa8f2..1a4428f9 100644 --- a/server/server.go +++ b/server/server.go @@ -60,8 +60,9 @@ type Config struct { GRPCServerTime time.Duration `yaml:"grpc_server_keepalive_time"` GRPCServerTimeout time.Duration `yaml:"grpc_server_keepalive_timeout"` - LogLevel logging.Level `yaml:"log_level"` - Log logging.Interface `yaml:"-"` + LogFormat string `yaml:"log_format"` + LogLevel logging.Level `yaml:"log_level"` + Log logging.Interface `yaml:"-"` PathPrefix string `yaml:"http_path_prefix"` } @@ -141,7 +142,7 @@ func New(cfg Config) (*Server, error) { // logrus. log := cfg.Log if log == nil { - log = logging.NewLogrus(cfg.LogLevel) + log = logging.NewLogrus(cfg.LogLevel, cfg.LogFormat) } log.WithField("http", httpListener.Addr()).WithField("grpc", grpcListener.Addr()).Infof("server listening on addresses")