Skip to content

Commit

Permalink
Use Arc to store reference to LoggerProvider from Logger
Browse files Browse the repository at this point in the history
  • Loading branch information
bIgBV committed Dec 18, 2023
1 parent 7d0b80e commit 2bc0ef1
Showing 1 changed file with 5 additions and 8 deletions.
13 changes: 5 additions & 8 deletions opentelemetry-sdk/src/logs/log_emitter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ use opentelemetry::{
#[cfg(feature = "logs_level_enabled")]
use opentelemetry::logs::Severity;

use std::{
borrow::Cow,
sync::{Arc, Weak},
};
use std::{borrow::Cow, sync::Arc};

#[derive(Debug, Clone)]
/// Creator for `Logger` instances.
Expand Down Expand Up @@ -55,7 +52,7 @@ impl opentelemetry::logs::LoggerProvider for LoggerProvider {
}

fn library_logger(&self, library: Arc<InstrumentationLibrary>) -> Self::Logger {
Logger::new(library, Arc::downgrade(&self.inner))
Logger::new(library, Arc::clone(&self.inner))
}
}

Expand Down Expand Up @@ -179,13 +176,13 @@ impl Builder {
/// [`LogRecord`]: opentelemetry::logs::LogRecord
pub struct Logger {
instrumentation_lib: Arc<InstrumentationLibrary>,
provider: Weak<LoggerProviderInner>,
provider: Arc<LoggerProviderInner>,
}

impl Logger {
pub(crate) fn new(
instrumentation_lib: Arc<InstrumentationLibrary>,
provider: Weak<LoggerProviderInner>,
provider: Arc<LoggerProviderInner>,
) -> Self {
Logger {
instrumentation_lib,
Expand All @@ -195,7 +192,7 @@ impl Logger {

/// LoggerProvider associated with this logger.
pub fn provider(&self) -> Option<LoggerProvider> {
self.provider.upgrade().map(LoggerProvider::new)
Some(LoggerProvider::new(Arc::clone(&self.provider)))
}

/// Instrumentation library information of this logger.
Expand Down

0 comments on commit 2bc0ef1

Please sign in to comment.