1
0
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:
Robert Pająk
2024-12-03 18:36:49 +01:00
committed by GitHub
parent 9f82e51c89
commit 2f0bf8e095
5 changed files with 18 additions and 40 deletions

View File

@ -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

View File

@ -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

View File

@ -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
} }

View File

@ -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)
}) })
} }
} }

View File

@ -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()