Zanzana: Simple logger wrapper for openfga (#89396)

* Zanzana: Simple logger wrapper for openfga

* don't export
pull/88909/head
Alexander Zobnin 1 year ago committed by GitHub
parent d46df10d30
commit b3907ca5ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 86
      pkg/services/authz/zanzana/logger.go
  2. 4
      pkg/services/authz/zanzana/server.go

@ -0,0 +1,86 @@
package zanzana
import (
"context"
"go.uber.org/zap"
"github.com/grafana/grafana/pkg/infra/log"
)
// zanzanaLogger is a grafana logger wrapper compatible with OpenFGA logger interface
type zanzanaLogger struct {
logger *log.ConcreteLogger
}
func newZanzanaLogger() *zanzanaLogger {
logger := log.New("openfga-server")
return &zanzanaLogger{
logger: logger,
}
}
// Simple converter for zap logger fields
func zapFieldsToArgs(fields []zap.Field) []any {
args := make([]any, 0)
for _, f := range fields {
args = append(args, f.Key)
if f.Interface != nil {
args = append(args, f.Interface)
} else if f.String != "" {
args = append(args, f.String)
} else {
args = append(args, f.Integer)
}
}
return args
}
func (l *zanzanaLogger) Debug(msg string, fields ...zap.Field) {
l.logger.Debug(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) Info(msg string, fields ...zap.Field) {
l.logger.Info(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) Warn(msg string, fields ...zap.Field) {
l.logger.Warn(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) Error(msg string, fields ...zap.Field) {
l.logger.Error(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) Panic(msg string, fields ...zap.Field) {
l.logger.Error(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) Fatal(msg string, fields ...zap.Field) {
l.logger.Error(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) DebugWithContext(ctx context.Context, msg string, fields ...zap.Field) {
l.logger.Debug(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) InfoWithContext(ctx context.Context, msg string, fields ...zap.Field) {
l.logger.Info(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) WarnWithContext(ctx context.Context, msg string, fields ...zap.Field) {
l.logger.Warn(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) ErrorWithContext(ctx context.Context, msg string, fields ...zap.Field) {
l.logger.Error(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) PanicWithContext(ctx context.Context, msg string, fields ...zap.Field) {
l.logger.Error(msg, zapFieldsToArgs(fields)...)
}
func (l *zanzanaLogger) FatalWithContext(ctx context.Context, msg string, fields ...zap.Field) {
l.logger.Error(msg, zapFieldsToArgs(fields)...)
}

@ -1,7 +1,6 @@
package zanzana package zanzana
import ( import (
"github.com/openfga/openfga/pkg/logger"
"github.com/openfga/openfga/pkg/server" "github.com/openfga/openfga/pkg/server"
"github.com/openfga/openfga/pkg/storage" "github.com/openfga/openfga/pkg/storage"
) )
@ -10,8 +9,7 @@ func NewServer(store storage.OpenFGADatastore) (*server.Server, error) {
// FIXME(kalleep): add support for more options, configure logging, tracing etc // FIXME(kalleep): add support for more options, configure logging, tracing etc
opts := []server.OpenFGAServiceV1Option{ opts := []server.OpenFGAServiceV1Option{
server.WithDatastore(store), server.WithDatastore(store),
// FIXME(kalleep): Write and log adapter for open fga logging interface server.WithLogger(newZanzanaLogger()),
server.WithLogger(logger.NewNoopLogger()),
} }
// FIXME(kalleep): Interceptors // FIXME(kalleep): Interceptors

Loading…
Cancel
Save