Skip to content

Commit fe8ff10

Browse files
committed
optimize OpenTelemetryLogger
1 parent f8806fe commit fe8ff10

File tree

3 files changed

+15
-25
lines changed

3 files changed

+15
-25
lines changed

rust/cubestore/Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/cubestore/cubestore/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ anyhow = "1.0"
108108
arc-swap = "1.7.1"
109109
tracing-opentelemetry = "0.27.0"
110110
tracing-subscriber = "0.3.18"
111+
tracing-log = "0.2.0"
111112
opentelemetry = "0.26.0"
112113
opentelemetry_sdk = { version = "0.26.0", features = ["rt-tokio"] }
113114
opentelemetry-otlp = { version = "0.26.0", default-features = false, features = [
Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use log::{Level, Log, Metadata, Record};
1+
use log::{Log, Metadata, Record};
22
use opentelemetry::trace::TracerProvider;
3-
use tracing::{event, Level as TracingLevel};
3+
use tracing_log::LogTracer;
44
use tracing_subscriber::layer::SubscriberExt;
55
use tracing_subscriber::Registry;
66

@@ -26,46 +26,34 @@ pub fn init_tracing_telemetry() {
2626
}
2727

2828
pub struct OpenTelemetryLogger {
29-
logger: Box<dyn Log>,
29+
inner_logger: Box<dyn Log>,
30+
otel_logger: Box<dyn Log>,
3031
}
3132

3233
impl OpenTelemetryLogger {
3334
pub fn new(logger: Box<dyn Log>) -> Self {
34-
Self { logger }
35+
Self {
36+
inner_logger: logger,
37+
otel_logger: Box::new(LogTracer::new()),
38+
}
3539
}
3640
}
3741

3842
impl Log for OpenTelemetryLogger {
3943
fn enabled<'a>(&self, metadata: &Metadata<'a>) -> bool {
40-
self.logger.enabled(metadata)
44+
self.inner_logger.enabled(metadata)
4145
}
4246

4347
fn log<'a>(&self, record: &Record<'a>) {
4448
if !self.enabled(record.metadata()) {
4549
return;
4650
}
47-
self.logger.log(&record);
48-
49-
match record.metadata().level() {
50-
Level::Error => {
51-
event!(TracingLevel::ERROR, "{}", record.args().to_string());
52-
}
53-
Level::Warn => {
54-
event!(TracingLevel::WARN, "{}", record.args().to_string());
55-
}
56-
Level::Info => {
57-
event!(TracingLevel::INFO, "{}", record.args().to_string());
58-
}
59-
Level::Debug => {
60-
event!(TracingLevel::DEBUG, "{}", record.args().to_string());
61-
}
62-
Level::Trace => {
63-
event!(TracingLevel::TRACE, "{}", record.args().to_string());
64-
}
65-
}
51+
self.inner_logger.log(&record);
52+
self.otel_logger.log(&record);
6653
}
6754

6855
fn flush(&self) {
69-
self.logger.flush()
56+
self.inner_logger.flush();
57+
self.otel_logger.flush();
7058
}
7159
}

0 commit comments

Comments
 (0)