Fix logging workflow functions
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user