From e20330073695f81b7aa3d45497b798c05bd473ac Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Mon, 24 Jan 2022 17:00:16 +0100 Subject: [PATCH] Fix logging workflow functions --- automation/automation/log_handler.go | 35 +++++++++++++++++------ automation/automation/log_handler_test.go | 24 +++++++--------- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/automation/automation/log_handler.go b/automation/automation/log_handler.go index 10fc4e399..e19eb6e7b 100644 --- a/automation/automation/log_handler.go +++ b/automation/automation/log_handler.go @@ -2,13 +2,15 @@ package automation import ( "context" + "github.com/cortezaproject/corteza-server/pkg/logger" "go.uber.org/zap" ) type ( logHandler struct { - reg logHandlerRegistry + reg logHandlerRegistry + logger *zap.Logger } ) @@ -24,28 +26,43 @@ func zapFields(fields map[string]string) []zap.Field { func LogHandler(reg logHandlerRegistry) *logHandler { h := &logHandler{ reg: reg, + + // this is a temporary solution how to get to the logging facility + // without being dependent on workflow logging settings + // + // there are still general logging settings that have a final say what is logged and what not + // + // With LOG_DEBUG=true you'll see all log levels from these functions. + // With debug logging disabled and LOG_LEVEL set on error, warn, info or debug, you'll filter out + // logging by verbosity: + // error will show + // and with LOG_LEVEL=error on you'll just see logged errors + // while LOG_LEVEL=info will show info, warn and error but ignore debug. + logger: logger.Default(). + Named("workflow"). + WithOptions(zap.WithCaller(false)), } h.register() return h } -func (h logHandler) debug(ctx context.Context, args *logDebugArgs) (err error) { - logger.ContextValue(ctx, zap.NewNop()).Debug(args.Message, zapFields(args.Fields)...) +func (h logHandler) debug(_ context.Context, args *logDebugArgs) (err error) { + h.logger.Debug(args.Message, zapFields(args.Fields)...) return nil } -func (h logHandler) info(ctx context.Context, args *logInfoArgs) (err error) { - logger.ContextValue(ctx, zap.NewNop()).Info(args.Message, zapFields(args.Fields)...) +func (h logHandler) info(_ context.Context, args *logInfoArgs) (err error) { + h.logger.Info(args.Message, zapFields(args.Fields)...) return nil } -func (h logHandler) warn(ctx context.Context, args *logWarnArgs) (err error) { - logger.ContextValue(ctx, zap.NewNop()).Warn(args.Message, zapFields(args.Fields)...) +func (h logHandler) warn(_ context.Context, args *logWarnArgs) (err error) { + h.logger.Warn(args.Message, zapFields(args.Fields)...) return nil } -func (h logHandler) error(ctx context.Context, args *logErrorArgs) (err error) { - logger.ContextValue(ctx, zap.NewNop()).Error(args.Message, zapFields(args.Fields)...) +func (h logHandler) error(_ context.Context, args *logErrorArgs) (err error) { + h.logger.Error(args.Message, zapFields(args.Fields)...) return nil } diff --git a/automation/automation/log_handler_test.go b/automation/automation/log_handler_test.go index 015e4d301..f2681fa05 100644 --- a/automation/automation/log_handler_test.go +++ b/automation/automation/log_handler_test.go @@ -2,11 +2,11 @@ package automation import ( "context" - "github.com/cortezaproject/corteza-server/pkg/logger" + "testing" + "github.com/stretchr/testify/require" "go.uber.org/zap" "go.uber.org/zap/zaptest/observer" - "testing" ) func observableLog() (*zap.Logger, *observer.ObservedLogs) { @@ -18,9 +18,8 @@ func TestLogHandler_Debug(t *testing.T) { var ( req = require.New(t) log, obs = observableLog() - handler = &logHandler{} - ctx = logger.ContextWithValue(context.Background(), log) - err = handler.debug(ctx, &logDebugArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) + handler = &logHandler{logger: log} + err = handler.debug(context.Background(), &logDebugArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) ) req.NoError(err) @@ -36,9 +35,8 @@ func TestLogHandler_Info(t *testing.T) { var ( req = require.New(t) log, obs = observableLog() - handler = &logHandler{} - ctx = logger.ContextWithValue(context.Background(), log) - err = handler.info(ctx, &logInfoArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) + handler = &logHandler{logger: log} + err = handler.info(context.Background(), &logInfoArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) ) req.NoError(err) @@ -54,9 +52,8 @@ func TestLogHandler_Warn(t *testing.T) { var ( req = require.New(t) log, obs = observableLog() - handler = &logHandler{} - ctx = logger.ContextWithValue(context.Background(), log) - err = handler.warn(ctx, &logWarnArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) + handler = &logHandler{logger: log} + err = handler.warn(context.Background(), &logWarnArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) ) req.NoError(err) @@ -72,9 +69,8 @@ func TestLogHandler_Error(t *testing.T) { var ( req = require.New(t) log, obs = observableLog() - handler = &logHandler{} - ctx = logger.ContextWithValue(context.Background(), log) - err = handler.error(ctx, &logErrorArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) + handler = &logHandler{logger: log} + err = handler.error(context.Background(), &logErrorArgs{Message: "123abc", Fields: map[string]string{"foo": "bar"}}) ) req.NoError(err)