-
Notifications
You must be signed in to change notification settings - Fork 559
/
logger.go
37 lines (29 loc) · 857 Bytes
/
logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package sdklog
import (
"context"
"go.opentelemetry.io/otel/log"
"go.opentelemetry.io/otel/log/embedded"
"go.opentelemetry.io/otel/sdk/instrumentation"
"go.opentelemetry.io/otel/sdk/resource"
otrace "go.opentelemetry.io/otel/trace"
)
var _ log.Logger = &logger{}
type logger struct {
embedded.Logger
provider *LoggerProvider
resource *resource.Resource
instrumentationScope instrumentation.Scope
}
func (l logger) Emit(ctx context.Context, r log.Record) {
span := otrace.SpanFromContext(ctx)
log := &LogData{
Record: r,
TraceID: span.SpanContext().TraceID(),
SpanID: span.SpanContext().SpanID(),
Resource: l.resource,
InstrumentationScope: l.instrumentationScope,
}
for _, proc := range l.provider.getLogProcessors() {
proc.OnEmit(ctx, log)
}
}