From 597dc7c5e23f31bc538fa73025171aee5db91e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Oester?= Date: Mon, 6 Oct 2025 16:36:20 +0300 Subject: [PATCH] add option to disable logging completely --- internal/logger/logger.go | 8 ++++++++ pkg/experiment/local/client.go | 4 ++++ pkg/experiment/local/config.go | 1 + pkg/experiment/remote/client.go | 8 +++++++- pkg/experiment/remote/config.go | 9 +++++---- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/internal/logger/logger.go b/internal/logger/logger.go index 1af7b4d..77c16c1 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -12,6 +12,7 @@ const ( Verbose Level = iota Debug Error + none ) type Log struct { @@ -32,6 +33,13 @@ func New(debug bool) *Log { } } +func NewDisabled() *Log { + return &Log{ + logger: log.New(os.Stderr, "", log.LstdFlags), + level: none, + } +} + func (l *Log) Verbose(format string, args ...interface{}) { if l.level <= Verbose { format = fmt.Sprintf("DEBUG - %v\n", format) diff --git a/pkg/experiment/local/client.go b/pkg/experiment/local/client.go index 7d3db54..6a90eb7 100644 --- a/pkg/experiment/local/client.go +++ b/pkg/experiment/local/client.go @@ -46,6 +46,10 @@ func Initialize(apiKey string, config *Config) *Client { } config = fillConfigDefaults(config) log := logger.New(config.Debug) + if config.DisableLogging { + log = logger.NewDisabled() + } + var as *assignmentService if config.AssignmentConfig != nil && config.AssignmentConfig.APIKey != "" { amplitudeClient := amplitude.NewClient(config.AssignmentConfig.Config) diff --git a/pkg/experiment/local/config.go b/pkg/experiment/local/config.go index e84ba70..9c0b7b0 100644 --- a/pkg/experiment/local/config.go +++ b/pkg/experiment/local/config.go @@ -20,6 +20,7 @@ const ( type Config struct { Debug bool + DisableLogging bool ServerUrl string ServerZone ServerZone FlagConfigPollerInterval time.Duration diff --git a/pkg/experiment/remote/client.go b/pkg/experiment/remote/client.go index 83e8eb6..d0ff066 100644 --- a/pkg/experiment/remote/client.go +++ b/pkg/experiment/remote/client.go @@ -35,8 +35,14 @@ func Initialize(apiKey string, config *Config) *Client { panic("api key must be set") } config = fillConfigDefaults(config) + + l := logger.New(config.Debug) + if config.DisableLogging { + l = logger.NewDisabled() + } + client = &Client{ - log: logger.New(config.Debug), + log: l, apiKey: apiKey, config: config, client: &http.Client{}, diff --git a/pkg/experiment/remote/config.go b/pkg/experiment/remote/config.go index 4f9349c..130c8f1 100644 --- a/pkg/experiment/remote/config.go +++ b/pkg/experiment/remote/config.go @@ -5,10 +5,11 @@ import ( ) type Config struct { - Debug bool - ServerUrl string - FetchTimeout time.Duration - RetryBackoff *RetryBackoff + Debug bool + DisableLogging bool + ServerUrl string + FetchTimeout time.Duration + RetryBackoff *RetryBackoff } var DefaultConfig = &Config{