Skip to content

Commit 9eb548a

Browse files
KodrAusTommyCppcijothomas
authored
Treat log's key-values as attributes in log bridge (#1628)
Co-authored-by: Zhongyang Wu <zhongyang.wu@outlook.com> Co-authored-by: Cijo Thomas <cijo.thomas@gmail.com>
1 parent 832fad4 commit 9eb548a

File tree

5 files changed

+1025
-31
lines changed

5 files changed

+1025
-31
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ futures-util = { version = "0.3", default-features = false }
2828
hyper = { version = "0.14", default-features = false }
2929
http = { version = "0.2", default-features = false }
3030
isahc = { version = "1.4", default-features = false }
31-
log = "0.4"
31+
log = "0.4.21"
3232
once_cell = "1.13"
3333
ordered-float = "4.0"
3434
pin-project-lite = "0.2"

opentelemetry-appender-log/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## vNext
44

5+
- Add log key-values as attributes [#1628](https://github.com/open-telemetry/opentelemetry-rust/pull/1628)
6+
57
## v0.3.0
68

79
## v0.2.0

opentelemetry-appender-log/Cargo.toml

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,17 @@ edition = "2021"
1212

1313
[dependencies]
1414
opentelemetry = { version = "0.22", path = "../opentelemetry", features = ["logs"]}
15-
log = { workspace = true, features = ["kv_unstable", "std"]}
15+
log = { workspace = true, features = ["kv", "std"]}
16+
serde = { workspace = true, optional = true, features = ["std"] }
1617

1718
[features]
1819
logs_level_enabled = ["opentelemetry/logs_level_enabled"]
20+
with-serde = ["log/kv_serde", "serde"]
1921
default = ["logs_level_enabled"]
2022

2123
[dev-dependencies]
2224
opentelemetry_sdk = { path = "../opentelemetry-sdk", features = [ "testing", "logs_level_enabled" ] }
25+
opentelemetry-stdout = { path = "../opentelemetry-stdout", features = ["logs"]}
26+
log = { workspace = true, features = ["kv_serde"] }
2327
tokio = { workspace = true }
28+
serde = { workspace = true, features = ["std", "derive"] }
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! run with `$ cargo run --example logs-basic-in-memory
1+
//! run with `$ cargo run --example logs-basic`
22
33
/// This example shows how to use in_memory_exporter for logs. This uses opentelemetry-appender-log crate, which is a
44
/// [logging appender](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#log-appender--bridge) that bridges logs from the [log crate](https://docs.rs/log/latest/log/) to OpenTelemetry.
@@ -8,15 +8,15 @@ use log::{error, info, warn, Level};
88
use opentelemetry_appender_log::OpenTelemetryLogBridge;
99
use opentelemetry_sdk::logs::{BatchLogProcessor, LoggerProvider};
1010
use opentelemetry_sdk::runtime;
11-
use opentelemetry_sdk::testing::logs::InMemoryLogsExporter;
11+
use opentelemetry_stdout::LogExporter;
1212

1313
#[tokio::main]
1414
async fn main() {
15-
//Create an InMemoryLogsExporter
16-
let exporter: InMemoryLogsExporter = InMemoryLogsExporter::default();
15+
//Create an exporter that writes to stdout
16+
let exporter = LogExporter::default();
1717
//Create a LoggerProvider and register the exporter
1818
let logger_provider = LoggerProvider::builder()
19-
.with_log_processor(BatchLogProcessor::builder(exporter.clone(), runtime::Tokio).build())
19+
.with_log_processor(BatchLogProcessor::builder(exporter, runtime::Tokio).build())
2020
.build();
2121

2222
// Setup Log Appender for the log crate.
@@ -25,14 +25,12 @@ async fn main() {
2525
log::set_max_level(Level::Info.to_level_filter());
2626

2727
// Emit logs using macros from the log crate.
28-
error!("hello from {}. My price is {}", "apple", 2.99);
28+
let fruit = "apple";
29+
let price = 2.99;
30+
31+
error!(fruit, price; "hello from {fruit}. My price is {price}");
2932
warn!("warn!");
3033
info!("test log!");
3134

3235
logger_provider.force_flush();
33-
34-
let emitted_logs = exporter.get_emitted_logs().unwrap();
35-
for log in emitted_logs {
36-
println!("{:?}", log);
37-
}
3836
}

0 commit comments

Comments
 (0)