You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-07-13 01:00:22 +02:00
log: Change EnabledParameters to have a field instead of getter and setter (#6009)
Allow users to to write less verbose code by changing methods to field.
This commit is contained in:
@ -20,6 +20,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||||||
- Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#5929)
|
- Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#5929)
|
||||||
- Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#5929)
|
- Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#5929)
|
||||||
- Performance improvements for attribute value `AsStringSlice`, `AsFloat64Slice`, `AsInt64Slice`, `AsBoolSlice`. (#6011)
|
- Performance improvements for attribute value `AsStringSlice`, `AsFloat64Slice`, `AsInt64Slice`, `AsBoolSlice`. (#6011)
|
||||||
|
- Change `EnabledParameters` to have a `Severity` field instead of a getter and setter in `go.opentelemetry.io/otel/log`. (#6009)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
@ -264,9 +264,9 @@ allocations and make it possible to handle new arguments, `Enabled` accepts
|
|||||||
a `EnabledParameters` struct, defined in [logger.go](logger.go), as the second
|
a `EnabledParameters` struct, defined in [logger.go](logger.go), as the second
|
||||||
method argument.
|
method argument.
|
||||||
|
|
||||||
The `EnabledParameters` getters are returning values using the `(value, ok)`
|
The `EnabledParameters` uses fields, instead of getters and setters, to allow
|
||||||
idiom in order to indicate if the values were actually set by the caller or if
|
simpler usage which allows configuring the `EnabledParameters` in the same line
|
||||||
there are unspecified.
|
where `Enabled` is called.
|
||||||
|
|
||||||
### noop package
|
### noop package
|
||||||
|
|
||||||
|
@ -138,18 +138,5 @@ func WithSchemaURL(schemaURL string) LoggerOption {
|
|||||||
|
|
||||||
// EnabledParameters represents payload for [Logger]'s Enabled method.
|
// EnabledParameters represents payload for [Logger]'s Enabled method.
|
||||||
type EnabledParameters struct {
|
type EnabledParameters struct {
|
||||||
severity Severity
|
Severity Severity
|
||||||
severitySet bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// Severity returns the [Severity] level value, or [SeverityUndefined] if no value was set.
|
|
||||||
// The ok result indicates whether the value was set.
|
|
||||||
func (r *EnabledParameters) Severity() (value Severity, ok bool) {
|
|
||||||
return r.severity, r.severitySet
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetSeverity sets the [Severity] level.
|
|
||||||
func (r *EnabledParameters) SetSeverity(level Severity) {
|
|
||||||
r.severity = level
|
|
||||||
r.severitySet = true
|
|
||||||
}
|
}
|
||||||
|
@ -68,21 +68,16 @@ func TestRecorderLoggerCreatesNewStruct(t *testing.T) {
|
|||||||
|
|
||||||
func TestLoggerEnabled(t *testing.T) {
|
func TestLoggerEnabled(t *testing.T) {
|
||||||
for _, tt := range []struct {
|
for _, tt := range []struct {
|
||||||
name string
|
name string
|
||||||
options []Option
|
options []Option
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
buildEnabledParameters func() log.EnabledParameters
|
enabledParams log.EnabledParameters
|
||||||
|
want bool
|
||||||
isEnabled bool
|
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "the default option enables every log entry",
|
name: "the default option enables every log entry",
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
buildEnabledParameters: func() log.EnabledParameters {
|
want: true,
|
||||||
return log.EnabledParameters{}
|
|
||||||
},
|
|
||||||
|
|
||||||
isEnabled: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "with everything disabled",
|
name: "with everything disabled",
|
||||||
@ -91,17 +86,13 @@ func TestLoggerEnabled(t *testing.T) {
|
|||||||
return false
|
return false
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
buildEnabledParameters: func() log.EnabledParameters {
|
want: false,
|
||||||
return log.EnabledParameters{}
|
|
||||||
},
|
|
||||||
|
|
||||||
isEnabled: false,
|
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
e := NewRecorder(tt.options...).Logger("test").Enabled(tt.ctx, tt.buildEnabledParameters())
|
e := NewRecorder(tt.options...).Logger("test").Enabled(tt.ctx, tt.enabledParams)
|
||||||
assert.Equal(t, tt.isEnabled, e)
|
assert.Equal(t, tt.want, e)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -280,10 +280,9 @@ func BenchmarkLoggerEnabled(b *testing.B) {
|
|||||||
WithProcessor(newFltrProcessor("0", false)),
|
WithProcessor(newFltrProcessor("0", false)),
|
||||||
WithProcessor(newFltrProcessor("1", true)),
|
WithProcessor(newFltrProcessor("1", true)),
|
||||||
)
|
)
|
||||||
logger := provider.Logger("BenchmarkLoggerEnabled")
|
logger := provider.Logger(b.Name())
|
||||||
ctx, param := context.Background(), log.EnabledParameters{}
|
ctx := context.Background()
|
||||||
param.SetSeverity(log.SeverityDebug)
|
param := log.EnabledParameters{Severity: log.SeverityDebug}
|
||||||
|
|
||||||
var enabled bool
|
var enabled bool
|
||||||
|
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
|
Reference in New Issue
Block a user