opentelemetry/logs/
noop.rs
1use std::{borrow::Cow, sync::Arc, time::SystemTime};
2
3use crate::{
4 logs::{AnyValue, LogRecord, Logger, LoggerProvider, Severity},
5 InstrumentationLibrary, Key, KeyValue,
6};
7
8#[derive(Clone, Debug, Default)]
10pub struct NoopLoggerProvider(());
11
12impl NoopLoggerProvider {
13 pub fn new() -> Self {
15 NoopLoggerProvider(())
16 }
17}
18
19impl LoggerProvider for NoopLoggerProvider {
20 type Logger = NoopLogger;
21
22 fn library_logger(&self, _library: Arc<InstrumentationLibrary>) -> Self::Logger {
23 NoopLogger(())
24 }
25
26 fn versioned_logger(
27 &self,
28 _name: impl Into<Cow<'static, str>>,
29 _version: Option<Cow<'static, str>>,
30 _schema_url: Option<Cow<'static, str>>,
31 _attributes: Option<Vec<KeyValue>>,
32 ) -> Self::Logger {
33 NoopLogger(())
34 }
35}
36
37#[derive(Debug, Clone, Default)]
38pub struct NoopLogRecord;
40
41impl LogRecord for NoopLogRecord {
42 #[inline]
44 fn set_event_name<T>(&mut self, _name: T)
45 where
46 T: Into<Cow<'static, str>>,
47 {
48 }
49 #[inline]
50 fn set_timestamp(&mut self, _timestamp: SystemTime) {}
51 #[inline]
52 fn set_observed_timestamp(&mut self, _timestamp: SystemTime) {}
53 #[inline]
54 fn set_severity_text(&mut self, _text: Cow<'static, str>) {}
55 #[inline]
56 fn set_severity_number(&mut self, _number: Severity) {}
57 #[inline]
58 fn set_body(&mut self, _body: AnyValue) {}
59 #[inline]
60 fn add_attributes<I, K, V>(&mut self, _attributes: I)
61 where
62 I: IntoIterator<Item = (K, V)>,
63 K: Into<Key>,
64 V: Into<AnyValue>,
65 {
66 }
67 #[inline]
68 fn add_attribute<K, V>(&mut self, _key: K, _value: V)
69 where
70 K: Into<Key>,
71 V: Into<AnyValue>,
72 {
73 }
74
75 #[inline]
76 fn set_target<T>(&mut self, _target: T)
78 where
79 T: Into<Cow<'static, str>>,
80 {
81 }
82}
83
84#[derive(Clone, Debug)]
86pub struct NoopLogger(());
87
88impl Logger for NoopLogger {
89 type LogRecord = NoopLogRecord;
90
91 fn create_log_record(&self) -> Self::LogRecord {
92 NoopLogRecord {}
93 }
94 fn emit(&self, _record: Self::LogRecord) {}
95 #[cfg(feature = "logs_level_enabled")]
96 fn event_enabled(&self, _level: super::Severity, _target: &str) -> bool {
97 false
98 }
99}