pub struct OpenTelemetrySink<L> { /* private fields */ }Expand description
A sink with a OpenTelemetry provider as the target.
It takes a SdkLoggerProvider from the upstream opentelemetry_sdk
crate, the relevant settings should be configured there.
Note that when configuring SdkLoggerProvider, you can use the batch
exporter to gain better throughput via its built-in asynchronous
implementation. If you choose to do so, combining OpenTelemetrySink with
AsyncPoolSink is no longer necessary.
Implementations§
Source§impl OpenTelemetrySink<()>
impl OpenTelemetrySink<()>
Sourcepub fn builder() -> OpenTelemetryBuilder<NotSet>
pub fn builder() -> OpenTelemetryBuilder<NotSet>
Gets a builder of TelegramSink with default parameters:
| Parameter | Default Value |
|---|---|
| level_filter | All |
| formatter | FullFormatter (!time !level !source_location !eol) |
| error_handler | ErrorHandler::default() |
| provider | must be specified |
Examples found in repository?
examples/usage.rs (line 43)
40fn setup_logger(
41 provider: &opentelemetry_sdk::logs::SdkLoggerProvider,
42) -> Result<(), Box<dyn StdError>> {
43 let sink = Arc::new(OpenTelemetrySink::builder().provider(provider).build()?);
44
45 let logger = spdlog::default_logger().fork_with(|logger| {
46 logger.set_level_filter(LevelFilter::All);
47 logger.sinks_mut().push(sink);
48 // Now the new logger has 3 sinks: stdout + stderr + OpenTelemetry
49 // ^^^^^^^^^^^^^^^
50 // forked from the default logger
51 Ok(())
52 })?;
53 spdlog::set_default_logger(logger);
54 Ok(())
55}Trait Implementations§
Source§impl<L> GetSinkProp for OpenTelemetrySink<L>
impl<L> GetSinkProp for OpenTelemetrySink<L>
Source§impl<L> Sink for OpenTelemetrySink<L>
impl<L> Sink for OpenTelemetrySink<L>
Source§fn should_log(&self, level: Level) -> bool
fn should_log(&self, level: Level) -> bool
Determines if a log message with the specified level would be logged.
Auto Trait Implementations§
impl<L> !Freeze for OpenTelemetrySink<L>
impl<L> !RefUnwindSafe for OpenTelemetrySink<L>
impl<L> Send for OpenTelemetrySink<L>where
L: Send,
impl<L> Sync for OpenTelemetrySink<L>where
L: Sync,
impl<L> Unpin for OpenTelemetrySink<L>where
L: Unpin,
impl<L> !UnwindSafe for OpenTelemetrySink<L>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<S> SinkPropAccess for Swhere
S: GetSinkProp,
impl<S> SinkPropAccess for Swhere
S: GetSinkProp,
Source§fn level_filter(&self) -> LevelFilter
fn level_filter(&self) -> LevelFilter
Gets the log level filter.
Source§fn set_level_filter(&self, level_filter: LevelFilter)
fn set_level_filter(&self, level_filter: LevelFilter)
Sets the log level filter.
Source§fn set_formatter(&self, formatter: Box<dyn Formatter>)
fn set_formatter(&self, formatter: Box<dyn Formatter>)
Sets the formatter.
Source§fn set_error_handler(&self, handler: ErrorHandler)
fn set_error_handler(&self, handler: ErrorHandler)
Sets a error handler. Read more