blob: 96781a6e0ee47336646e01554c34098055429fb8 [file]
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package otel
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"go.opentelemetry.io/otel/log"
"go.opentelemetry.io/otel/log/embedded"
"go.opentelemetry.io/otel/log/noop"
)
type testLoggerProvider struct {
embedded.LoggerProvider
logger log.Logger
}
var _ log.LoggerProvider = &testLoggerProvider{}
func (p *testLoggerProvider) Logger(string, ...log.LoggerOption) log.Logger {
if p.logger != nil {
return p.logger
}
return noop.NewLoggerProvider().Logger("")
}
type testLogger struct{ embedded.Logger }
func (*testLogger) Emit(context.Context, log.Record) {}
func (*testLogger) Enabled(context.Context, log.EnabledParameters) bool { return false }
func TestMultipleGlobalLoggerProvider(t *testing.T) {
p1 := testLoggerProvider{}
p2 := noop.NewLoggerProvider()
SetLoggerProvider(&p1)
SetLoggerProvider(p2)
assert.Equal(t, p2, GetLoggerProvider())
}
func TestLogger(t *testing.T) {
provider := &testLoggerProvider{logger: &testLogger{}}
SetLoggerProvider(provider)
assert.Same(t, provider.logger, Logger("test"))
}