Source File
logger.go
Belonging Package
go.opentelemetry.io/otel/log
// Copyright The OpenTelemetry Authors// SPDX-License-Identifier: Apache-2.0package log // import "go.opentelemetry.io/otel/log"import ()// Logger emits log records.//// Warning: Methods may be added to this interface in minor releases. See// package documentation on API implementation for information on how to set// default behavior for unimplemented methods.type Logger interface {// Users of the interface can ignore this. This embedded type is only used// by implementations of this interface. See the "API Implementations"// section of the package documentation for more information.embedded.Logger// Emit emits a log record.//// The record may be held by the implementation. Callers should not mutate// the record after passed.//// Implementations of this method need to be safe for a user to call// concurrently.Emit(ctx context.Context, record Record)// Enabled reports whether the Logger emits for the given context and// param.//// This is useful for users that want to know if a [Record]// will be processed or dropped before they perform complex operations to// construct the [Record].//// The passed param is likely to be a partial record information being// provided (e.g a param with only the Severity set).// If a Logger needs more information than is provided, it// is said to be in an indeterminate state (see below).//// The returned value will be true when the Logger will emit for the// provided context and param, and will be false if the Logger will not// emit. The returned value may be true or false in an indeterminate state.// An implementation should default to returning true for an indeterminate// state, but may return false if valid reasons in particular circumstances// exist (e.g. performance, correctness).//// The param should not be held by the implementation. A copy should be// made if the param needs to be held after the call returns.//// Implementations of this method need to be safe for a user to call// concurrently.Enabled(ctx context.Context, param EnabledParameters) bool}// LoggerOption applies configuration options to a [Logger].type LoggerOption interface {// applyLogger is used to set a LoggerOption value of a LoggerConfig.applyLogger(LoggerConfig) LoggerConfig}// LoggerConfig contains options for a [Logger].type LoggerConfig struct {// Ensure forward compatibility by explicitly making this not comparable.noCmp [0]func() //nolint: unused // This is indeed used.version stringschemaURL stringattrs attribute.Set}// NewLoggerConfig returns a new [LoggerConfig] with all the options applied.func ( ...LoggerOption) LoggerConfig {var LoggerConfigfor , := range {= .applyLogger()}return}// InstrumentationVersion returns the version of the library providing// instrumentation.func ( LoggerConfig) () string {return .version}// InstrumentationAttributes returns the attributes associated with the library// providing instrumentation.func ( LoggerConfig) () attribute.Set {return .attrs}// SchemaURL returns the schema URL of the library providing instrumentation.func ( LoggerConfig) () string {return .schemaURL}type loggerOptionFunc func(LoggerConfig) LoggerConfigfunc ( loggerOptionFunc) ( LoggerConfig) LoggerConfig {return ()}// WithInstrumentationVersion returns a [LoggerOption] that sets the// instrumentation version of a [Logger].func ( string) LoggerOption {return loggerOptionFunc(func( LoggerConfig) LoggerConfig {.version =return})}// WithInstrumentationAttributes returns a [LoggerOption] that sets the// instrumentation attributes of a [Logger].//// The passed attributes will be de-duplicated.func ( ...attribute.KeyValue) LoggerOption {return loggerOptionFunc(func( LoggerConfig) LoggerConfig {.attrs = attribute.NewSet(...)return})}// WithSchemaURL returns a [LoggerOption] that sets the schema URL for a// [Logger].func ( string) LoggerOption {return loggerOptionFunc(func( LoggerConfig) LoggerConfig {.schemaURL =return})}// EnabledParameters represents payload for [Logger]'s Enabled method.type EnabledParameters struct {Severity SeverityEventName string}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |