forked from open-telemetry/opentelemetry-rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.rs
25 lines (22 loc) · 1.1 KB
/
main.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use log::{Level, trace, error};
use opentelemetry_api::KeyValue;
use opentelemetry_appender_log::OpenTelemetryLogBridge;
use opentelemetry_sdk::logs::{LoggerProvider, Config};
use opentelemetry_sdk::{Resource};
fn main(){
// Setup LoggerProvider with a stdout exporter
let exporter = opentelemetry_stdout::LogExporter::default();
let logger_provider = LoggerProvider::builder()
.with_config(Config::default().with_resource(Resource::new(vec![KeyValue::new(
"service.name",
"logs-basic-example",
)])))
.with_simple_exporter(exporter).build();
// Setup Log Appender for the log crate.
let otel_log_appender = OpenTelemetryLogBridge::new(Level::Info, &logger_provider);
log::set_boxed_logger(Box::new(otel_log_appender)).unwrap();
// Emit logs using macros from the log crate.
// These logs gets piped through OpenTelemetry bridge and gets exported to stdout.
error!(target: "cijo-warn", "hello from {}. My price is {}", "apple", 2.99);
trace!(target: "cijo-warn", "hello from {}, My price is {}", "orange", 2.99);
}