Skip to content

Commit

Permalink
make severity of level computations const (#1369)
Browse files Browse the repository at this point in the history
  • Loading branch information
shaun-cox committed Nov 15, 2023
1 parent 41c6ea8 commit a2c0dd8
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
11 changes: 5 additions & 6 deletions opentelemetry-appender-log/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@ where
{
fn enabled(&self, _metadata: &Metadata) -> bool {
#[cfg(feature = "logs_level_enabled")]
return self.logger.event_enabled(
map_severity_to_otel_severity(_metadata.level()),
_metadata.target(),
);
return self
.logger
.event_enabled(severity_of_level(_metadata.level()), _metadata.target());
#[cfg(not(feature = "logs_level_enabled"))]
true
}
Expand All @@ -30,7 +29,7 @@ where
if self.enabled(record.metadata()) {
self.logger.emit(
LogRecordBuilder::new()
.with_severity_number(map_severity_to_otel_severity(record.level()))
.with_severity_number(severity_of_level(record.level()))
.with_severity_text(record.level().as_str())
// Not populating ObservedTimestamp, instead relying on OpenTelemetry
// API to populate it with current time.
Expand Down Expand Up @@ -61,7 +60,7 @@ where
}
}

fn map_severity_to_otel_severity(level: Level) -> Severity {
const fn severity_of_level(level: Level) -> Severity {
match level {
Level::Error => Severity::Error,
Level::Warn => Severity::Warn,
Expand Down
20 changes: 10 additions & 10 deletions opentelemetry-appender-tracing/src/layer.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use opentelemetry::logs::{LogRecord, Logger, LoggerProvider, Severity};
use std::borrow::Cow;
use tracing_core::Level;
use tracing_subscriber::Layer;

const INSTRUMENTATION_LIBRARY_NAME: &str = "opentelemetry-appender-tracing";
Expand Down Expand Up @@ -100,7 +101,7 @@ where
) {
let meta = event.metadata();
let mut log_record: LogRecord = LogRecord::default();
log_record.severity_number = Some(map_severity_to_otel_severity(meta.level().as_str()));
log_record.severity_number = Some(severity_of_level(meta.level()));
log_record.severity_text = Some(meta.level().to_string().into());

// add the `name` metadata to attributes
Expand All @@ -124,19 +125,18 @@ where
_event: &tracing_core::Event<'_>,
_ctx: tracing_subscriber::layer::Context<'_, S>,
) -> bool {
let severity = map_severity_to_otel_severity(_event.metadata().level().as_str());
let severity = severity_of_level(_event.metadata().level());
self.logger
.event_enabled(severity, _event.metadata().target())
}
}

fn map_severity_to_otel_severity(level: &str) -> Severity {
match level {
"INFO" => Severity::Info,
"DEBUG" => Severity::Debug,
"TRACE" => Severity::Trace,
"WARN" => Severity::Warn,
"ERROR" => Severity::Error,
_ => Severity::Info, // won't reach here
const fn severity_of_level(level: &Level) -> Severity {
match *level {
Level::TRACE => Severity::Trace,
Level::DEBUG => Severity::Debug,
Level::INFO => Severity::Info,
Level::WARN => Severity::Warn,
Level::ERROR => Severity::Error,
}
}

0 comments on commit a2c0dd8

Please sign in to comment.