File tree Expand file tree Collapse file tree 3 files changed +31
-0
lines changed
Expand file tree Collapse file tree 3 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -96,6 +96,16 @@ func NewWith(cfgFn func(*zap.Config)) (Logger, error) {
9696 return & logger {core .Sugar ()}, nil
9797}
9898
99+ func NewWithCore (cfgFn func (* zap.Config ), core zapcore.Core ) (Logger , error ) {
100+ cfg := zap .NewProductionConfig ()
101+ cfgFn (& cfg )
102+ c , err := cfg .Build ()
103+ if err != nil {
104+ return nil , err
105+ }
106+ return & logger {zap .New (zapcore .NewTee (c .Core (), core )).Sugar ()}, nil
107+ }
108+
99109// NewWithSync returns a new Logger with a given SyncWriter.
100110func NewWithSync (w io.Writer ) Logger {
101111 core := zapcore .NewCore (zapcore .NewJSONEncoder (zap .NewProductionEncoderConfig ()), zapcore .AddSync (w ), zapcore .InfoLevel )
Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ import (
1414 "golang.org/x/exp/slices"
1515
1616 "github.com/smartcontractkit/chainlink-common/pkg/logger"
17+ "github.com/smartcontractkit/chainlink-common/pkg/logger/otelzap"
18+ otellog "go.opentelemetry.io/otel/log"
1719)
1820
1921// HCLogLogger returns an [hclog.Logger] backed by the given [logger.Logger].
@@ -171,6 +173,17 @@ func NewLogger() (logger.Logger, error) {
171173 })
172174}
173175
176+ func NewOtelLogger (otelLogger otellog.Logger ) (logger.Logger , error ) {
177+ cfgFn := func (cfg * zap.Config ) {
178+ cfg .Level .SetLevel (zap .DebugLevel )
179+ cfg .EncoderConfig .LevelKey = "@level"
180+ cfg .EncoderConfig .MessageKey = "@message"
181+ cfg .EncoderConfig .TimeKey = "@timestamp"
182+ cfg .EncoderConfig .EncodeTime = zapcore .TimeEncoderOfLayout ("2006-01-02T15:04:05.000000Z07:00" )
183+ }
184+ return logger .NewWithCore (cfgFn , otelzap .NewCore (otelLogger ))
185+ }
186+
174187// onceValue returns a function that invokes f only once and returns the value
175188// returned by f. The returned function may be called concurrently.
176189//
Original file line number Diff line number Diff line change @@ -148,6 +148,14 @@ func (s *Server) start() error {
148148 }
149149 beholder .SetClient (beholderClient )
150150 beholder .SetGlobalOtelProviders ()
151+
152+ if beholderCfg .LogStreamingEnabled {
153+ otelLogger , err := NewOtelLogger (beholder .GetLogger ())
154+ if err != nil {
155+ return fmt .Errorf ("failed to enable log streaming: %w" , err )
156+ }
157+ s .Logger = logger .Sugared (logger .Named (otelLogger , s .Logger .Name ()))
158+ }
151159 }
152160
153161 s .promServer = NewPromServer (s .EnvConfig .PrometheusPort , s .Logger )
You can’t perform that action at this time.
0 commit comments