Skip to content

Commit 79c0b05

Browse files
committed
address comments
1 parent 4daa2af commit 79c0b05

File tree

5 files changed

+24
-53
lines changed

5 files changed

+24
-53
lines changed

opentelemetry-sdk/src/logs/log_emitter.rs

+14-14
Original file line numberDiff line numberDiff line change
@@ -78,20 +78,6 @@ impl opentelemetry::logs::LoggerProvider for LoggerProvider {
7878
}
7979
Logger::new(library, self.clone())
8080
}
81-
82-
/// Shuts down this `LoggerProvider`
83-
fn shutdown(&self) -> Vec<LogResult<()>> {
84-
// mark itself as already shutdown
85-
self.is_shutdown
86-
.store(true, std::sync::atomic::Ordering::Relaxed);
87-
// propagate the shutdown signal to processors
88-
// it's up to the processor to properly block new logs after shutdown
89-
self.inner
90-
.processors
91-
.iter()
92-
.map(|processor| processor.shutdown())
93-
.collect()
94-
}
9581
}
9682

9783
impl LoggerProvider {
@@ -117,6 +103,20 @@ impl LoggerProvider {
117103
.map(|processor| processor.force_flush())
118104
.collect()
119105
}
106+
107+
/// Shuts down this `LoggerProvider`
108+
pub fn shutdown(&self) -> Vec<LogResult<()>> {
109+
// mark itself as already shutdown
110+
self.is_shutdown
111+
.store(true, std::sync::atomic::Ordering::Relaxed);
112+
// propagate the shutdown signal to processors
113+
// it's up to the processor to properly block new logs after shutdown
114+
self.inner
115+
.processors
116+
.iter()
117+
.map(|processor| processor.shutdown())
118+
.collect()
119+
}
120120
}
121121

122122
#[derive(Debug)]

opentelemetry-sdk/src/testing/logs/in_memory_exporter.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,6 @@ impl InMemoryLogsExporterBuilder {
9191
}
9292
}
9393

94-
/// If set, the records will not be [`InMemoryLogsExporter::reset`] on shutdown.
95-
pub fn keep_records_on_shutdown(self) -> Self {
96-
Self {
97-
reset_on_shutdown: false,
98-
}
99-
}
100-
10194
/// Creates a new instance of `InMemoryLogsExporter`.
10295
///
10396
pub fn build(&self) -> InMemoryLogsExporter {
@@ -106,6 +99,14 @@ impl InMemoryLogsExporterBuilder {
10699
should_reset_on_shutdown: self.reset_on_shutdown,
107100
}
108101
}
102+
103+
/// If set, the records will not be [`InMemoryLogsExporter::reset`] on shutdown.
104+
#[cfg(test)]
105+
pub(crate) fn keep_records_on_shutdown(self) -> Self {
106+
Self {
107+
reset_on_shutdown: false,
108+
}
109+
}
109110
}
110111

111112
impl InMemoryLogsExporter {

opentelemetry/src/global/logs.rs

+1-14
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ use std::{
66

77
use once_cell::sync::Lazy;
88

9-
use crate::logs::LogResult;
109
use crate::{
1110
logs::{Logger, LoggerProvider, NoopLoggerProvider},
1211
InstrumentationLibrary,
@@ -26,9 +25,6 @@ pub trait ObjectSafeLoggerProvider {
2625
&self,
2726
library: Arc<InstrumentationLibrary>,
2827
) -> Box<dyn Logger + Send + Sync + 'static>;
29-
30-
/// shutdown the logger provider, logs emitted after this will not be processed.
31-
fn shutdown(&self) -> Vec<LogResult<()>>;
3228
}
3329

3430
impl<L, P> ObjectSafeLoggerProvider for P
@@ -42,10 +38,6 @@ where
4238
) -> Box<dyn Logger + Send + Sync + 'static> {
4339
Box::new(self.library_logger(library))
4440
}
45-
46-
fn shutdown(&self) -> Vec<LogResult<()>> {
47-
self.shutdown()
48-
}
4941
}
5042

5143
pub struct BoxedLogger(Box<dyn Logger + Send + Sync + 'static>);
@@ -98,10 +90,6 @@ impl LoggerProvider for GlobalLoggerProvider {
9890
fn library_logger(&self, library: Arc<InstrumentationLibrary>) -> Self::Logger {
9991
BoxedLogger(self.provider.boxed_logger(library))
10092
}
101-
102-
fn shutdown(&self) -> Vec<LogResult<()>> {
103-
self.provider.shutdown()
104-
}
10593
}
10694

10795
static GLOBAL_LOGGER_PROVIDER: Lazy<RwLock<GlobalLoggerProvider>> =
@@ -144,6 +132,5 @@ where
144132

145133
/// Shut down the current global [`LoggerProvider`].
146134
pub fn shutdown_logger_provider() {
147-
let logger_provider = set_logger_provider(NoopLoggerProvider::new());
148-
let _ = ObjectSafeLoggerProvider::shutdown(&logger_provider);
135+
let _ = set_logger_provider(NoopLoggerProvider::new());
149136
}

opentelemetry/src/logs/logger.rs

+1-13
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
use std::{borrow::Cow, sync::Arc};
22

3-
use crate::{
4-
logs::{LogRecord, LogResult},
5-
InstrumentationLibrary, InstrumentationLibraryBuilder, KeyValue,
6-
};
3+
use crate::{logs::LogRecord, InstrumentationLibrary, InstrumentationLibraryBuilder, KeyValue};
74

85
#[cfg(feature = "logs_level_enabled")]
96
use super::Severity;
@@ -117,15 +114,6 @@ pub trait LoggerProvider {
117114
fn logger(&self, name: impl Into<Cow<'static, str>>) -> Self::Logger {
118115
self.logger_builder(name).build()
119116
}
120-
121-
/// Shuts down this `LoggerProvider`
122-
/// After shutdown the logger provider cannot be used to create new loggers.
123-
/// The implementation should propagate the shutdown signal down to ensure no new logs are emitted.
124-
/// Shutdown the logger provider. Noop logger will be returned after shutdown.
125-
///
126-
/// Note that `shutdown` doesn't mean `Drop`(though `Drop` can call `shutdown`).
127-
/// It simply means the provider will emit anything in the buffer(if applicable) and stop processing
128-
fn shutdown(&self) -> Vec<LogResult<()>>;
129117
}
130118

131119
#[derive(Debug)]

opentelemetry/src/logs/noop.rs

-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use std::{borrow::Cow, sync::Arc};
22

3-
use crate::logs::LogResult;
43
use crate::{
54
logs::{LogRecord, Logger, LoggerProvider},
65
InstrumentationLibrary, KeyValue,
@@ -33,10 +32,6 @@ impl LoggerProvider for NoopLoggerProvider {
3332
) -> Self::Logger {
3433
NoopLogger(())
3534
}
36-
37-
fn shutdown(&self) -> Vec<LogResult<()>> {
38-
vec![]
39-
}
4035
}
4136

4237
/// A no-op implementation of a [`Logger`]

0 commit comments

Comments
 (0)