opentelemetry/logs/
noop.rs1use std::{borrow::Cow, time::SystemTime};
2
3use crate::{
4 logs::{AnyValue, LogRecord, Logger, LoggerProvider, Severity},
5 InstrumentationScope, Key,
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 logger_with_scope(&self, _scope: InstrumentationScope) -> Self::Logger {
23 NoopLogger(())
24 }
25}
26
27#[derive(Debug, Clone, Default)]
28pub struct NoopLogRecord;
30
31impl LogRecord for NoopLogRecord {
32 #[inline]
34 fn set_event_name(&mut self, _name: &'static str) {}
35 #[inline]
36 fn set_timestamp(&mut self, _timestamp: SystemTime) {}
37 #[inline]
38 fn set_observed_timestamp(&mut self, _timestamp: SystemTime) {}
39 #[inline]
40 fn set_severity_text(&mut self, _text: &'static str) {}
41 #[inline]
42 fn set_severity_number(&mut self, _number: Severity) {}
43 #[inline]
44 fn set_body(&mut self, _body: AnyValue) {}
45 #[inline]
46 fn add_attributes<I, K, V>(&mut self, _attributes: I)
47 where
48 I: IntoIterator<Item = (K, V)>,
49 K: Into<Key>,
50 V: Into<AnyValue>,
51 {
52 }
53 #[inline]
54 fn add_attribute<K, V>(&mut self, _key: K, _value: V)
55 where
56 K: Into<Key>,
57 V: Into<AnyValue>,
58 {
59 }
60
61 #[inline]
62 fn set_target<T>(&mut self, _target: T)
64 where
65 T: Into<Cow<'static, str>>,
66 {
67 }
68}
69
70#[derive(Clone, Debug)]
72pub struct NoopLogger(());
73
74impl Logger for NoopLogger {
75 type LogRecord = NoopLogRecord;
76
77 fn create_log_record(&self) -> Self::LogRecord {
78 NoopLogRecord {}
79 }
80 fn emit(&self, _record: Self::LogRecord) {}
81 #[cfg(feature = "spec_unstable_logs_enabled")]
82 fn event_enabled(&self, _level: super::Severity, _target: &str) -> bool {
83 false
84 }
85}