Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 45 additions & 2 deletions libs/partner/go/zap/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ type Binding struct {
Logger *zap.Logger
SugaredLogger *zap.SugaredLogger

LoggerWrapper *ZapLoggerWrapper
SugaredLoggerWrapper *ZapSugaredLoggerWrapper

configuration *Configuration
}

Expand Down Expand Up @@ -53,8 +56,10 @@ func (b *Binding) Bind(_ context.Context, bindings *sdkv2alphalib.Bindings) *sdk
defer b.Logger.Sync() //nolint:errcheck

Bound = &Binding{
Logger: b.Logger,
SugaredLogger: b.Logger.Sugar(),
Logger: b.Logger,
SugaredLogger: b.Logger.Sugar(),
LoggerWrapper: NewZapLoggerWrapper(b.Logger),
SugaredLoggerWrapper: NewZapSugaredLoggerWrapper(b.Logger.Sugar()),

configuration: b.configuration,
}
Expand All @@ -78,3 +83,41 @@ func (b *Binding) Close() error {
fmt.Println("Closing the Uber Zap Logger Binding")
return nil
}

// ZapLoggerWrapper wraps a zap.Logger to implement log-compatible interfaces like Printf for structured logging.
// It provides a convenient way to integrate zap.Logger into libraries expecting standard logging interfaces.
type ZapLoggerWrapper struct {
logger *zap.Logger
}

// NewZapLoggerWrapper creates and returns a new instance of ZapLoggerWrapper using the provided zap.Logger instance.
func NewZapLoggerWrapper(z *zap.Logger) *ZapLoggerWrapper {
return &ZapLoggerWrapper{
logger: z,
}
}

// Printf logs a formatted message at the INFO level using the zap.Logger instance.
func (z *ZapLoggerWrapper) Printf(format string, v ...any) {
msg := fmt.Sprintf(format, v...)
z.logger.Info(msg)
}

// ZapSugaredLoggerWrapper is a wrapper around zap.SugaredLogger to provide custom logging functionalities.
// It includes methods for structured and formatted logging leveraging the underlying zap.SugaredLogger instance.
type ZapSugaredLoggerWrapper struct {
logger *zap.SugaredLogger
}

// NewZapSugaredLoggerWrapper initializes and returns a new ZapSugaredLoggerWrapper using the provided SugaredLogger instance.
func NewZapSugaredLoggerWrapper(z *zap.SugaredLogger) *ZapSugaredLoggerWrapper {
return &ZapSugaredLoggerWrapper{
logger: z,
}
}

// Printf logs a formatted message at the Info level using the provided format and arguments.
func (z *ZapSugaredLoggerWrapper) Printf(format string, v ...any) {
msg := fmt.Sprintf(format, v...)
z.logger.Info(msg)
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,12 @@ import (
"github.com/spf13/cobra"
{{ if ne (getApiOptionsNetwork . ) "overlay" -}}
"net/http"
"github.com/openecosystems/ecosystem/libs/{{ $apiType }}/go/sdk/gen/platform/{{ $system.LowerCamelCase }}/{{ $versionLower }}"
"github.com/openecosystems/ecosystem/libs/{{ $apiType }}/go/sdk/gen/platform/{{ $system.LowerCamelCase }}/{{ $versionLower }}/{{ $system.LowerCamelCase }}{{ $versionLower }}pbconnect"
{{ else -}}
"github.com/openecosystems/ecosystem/libs/{{ $apiType }}/go/sdk/gen/platform/{{ $system.LowerCamelCase }}/{{ $versionLower }}"
"github.com/openecosystems/ecosystem/libs/{{ $apiType }}/go/sdk/gen/platform/{{ $system.LowerCamelCase }}/{{ $versionLower }}/{{ $system.LowerCamelCase }}{{ $versionLower }}pbconnect"
{{ end }}

{{ range getImportPackages .File }}
//"{{ . }}"
"{{ . }}"
"{{ . }}/{{ $system.LowerCamelCase }}{{ $versionLower }}pbconnect"
{{ end }}
)

Expand Down
6 changes: 6 additions & 0 deletions libs/plugins/protoc-gen-platform/shared/functions_cqrs.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ func (fns Functions) IsCQRSType(method pgs.Method) string {
return "query"
case options.CQRSType_CQRS_TYPE_QUERY_GET:
return "query"
case options.CQRSType_CQRS_TYPE_QUERY_EXISTS:
return "query"
case options.CQRSType_CQRS_TYPE_QUERY_CLIENT_STREAM:
return "query-client-stream"
case options.CQRSType_CQRS_TYPE_QUERY_SERVER_STREAM:
Expand Down Expand Up @@ -188,6 +190,8 @@ func (fns Functions) GetCQRSType(method pgs.Method) string {
return "list"
case options.CQRSType_CQRS_TYPE_QUERY_GET:
return "get"
case options.CQRSType_CQRS_TYPE_QUERY_EXISTS:
return "exists"
case options.CQRSType_CQRS_TYPE_QUERY_CLIENT_STREAM:
return "stream-client"
case options.CQRSType_CQRS_TYPE_QUERY_SERVER_STREAM:
Expand Down Expand Up @@ -216,6 +220,8 @@ func (fns Functions) ConvertCQRSTypeToString(t options.CQRSType) string {
return "Mutation"
case options.CQRSType_CQRS_TYPE_QUERY_LIST:
fallthrough
case options.CQRSType_CQRS_TYPE_QUERY_EXISTS:
fallthrough
case options.CQRSType_CQRS_TYPE_QUERY_STREAM:
fallthrough
case options.CQRSType_CQRS_TYPE_QUERY_CLIENT_STREAM:
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading