Fix logging workflow functions

This commit is contained in:
Denis Arh
2022-01-24 17:48:22 +01:00
parent 9fe21dd8ce
commit e203300736
2 changed files with 36 additions and 23 deletions
+26 -9
View File
@@ -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
}
+10 -14
View File
@@ -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)