Skip to content

Commit 6002521

Browse files
testtest
test
authored and
test
committed
using logger for bsp
1 parent 41267f8 commit 6002521

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

Diff for: instrumentation/opentelemetry/batchspanprocessor/logger.go

+21-9
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,47 @@ package batchspanprocessor // import "github.com/hypertrace/goagent/instrumentat
22

33
// Adapted from go.opentelemetry.io/otel/internal/global#internal_logging.go
44
import (
5-
"log"
6-
"os"
7-
85
"github.com/go-logr/logr"
9-
"github.com/go-logr/stdr"
6+
"github.com/go-logr/zapr"
7+
"go.uber.org/zap"
8+
"sync"
109
)
1110

1211
// The logger uses stdr which is backed by the standard `log.Logger`
1312
// interface. This logger will only show messages at the Error Level.
14-
var logger logr.Logger = stdr.New(log.New(os.Stderr, "", log.LstdFlags|log.Lshortfile))
13+
var (
14+
logger logr.Logger
15+
once sync.Once
16+
)
1517

1618
// Info prints messages about the general state of the API or SDK.
1719
// This should usually be less then 5 messages a minute.
1820
func Info(msg string, keysAndValues ...interface{}) {
19-
logger.V(4).Info(msg, keysAndValues...)
21+
getLogger().V(4).Info(msg, keysAndValues...)
2022
}
2123

2224
// Error prints messages about exceptional states of the API or SDK.
2325
func Error(err error, msg string, keysAndValues ...interface{}) {
24-
logger.Error(err, msg, keysAndValues...)
26+
getLogger().Error(err, msg, keysAndValues...)
2527
}
2628

2729
// Debug prints messages about all internal changes in the API or SDK.
2830
func Debug(msg string, keysAndValues ...interface{}) {
29-
logger.V(8).Info(msg, keysAndValues...)
31+
getLogger().V(8).Info(msg, keysAndValues...)
3032
}
3133

3234
// Warn prints messages about warnings in the API or SDK.
3335
// Not an error but is likely more important than an informational event.
3436
func Warn(msg string, keysAndValues ...interface{}) {
35-
logger.V(1).Info(msg, keysAndValues...)
37+
getLogger().V(1).Info(msg, keysAndValues...)
38+
}
39+
40+
// since global variables init happens on package imports,
41+
// the zap global logger might not be set by then
42+
// hence doing a lazy initialization
43+
func getLogger() logr.Logger {
44+
once.Do(func() {
45+
logger = zapr.NewLogger(zap.L())
46+
})
47+
return logger
3648
}

Diff for: instrumentation/opentelemetry/init.go

+2
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,8 @@ func InitWithSpanProcessorWrapperAndZap(cfg *config.AgentConfig, wrapper SpanPro
284284
}
285285

286286
if logger != nil {
287+
_ = zap.ReplaceGlobals(logger.With(zap.String("service", "hypertrace")))
288+
287289
// initialize opentelemetry's internal logger
288290
logr := zapr.NewLogger(logger)
289291
otel.SetLogger(logr)

0 commit comments

Comments
 (0)