Skip to content

Commit 672ba2e

Browse files
Copilotlalitb
andcommitted
Add Clone implementation to SdkLogger for consistency with SdkTracer
Co-authored-by: lalitb <[email protected]>
1 parent 56c2624 commit 672ba2e

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

opentelemetry-sdk/src/logs/logger.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use opentelemetry::{trace::TraceContextExt, Context, InstrumentationScope};
55
use opentelemetry::logs::Severity;
66
use opentelemetry::time::now;
77

8-
#[derive(Debug)]
8+
#[derive(Debug, Clone)]
99
/// The object for emitting [`LogRecord`]s.
1010
///
1111
/// [`LogRecord`]: opentelemetry::logs::LogRecord
@@ -64,3 +64,24 @@ impl opentelemetry::logs::Logger for SdkLogger {
6464
.any(|processor| processor.event_enabled(level, target, name))
6565
}
6666
}
67+
68+
#[cfg(test)]
69+
mod tests {
70+
use super::*;
71+
use crate::logs::SdkLoggerProvider;
72+
use opentelemetry::InstrumentationScope;
73+
74+
#[test]
75+
fn test_sdk_logger_clone() {
76+
let scope = InstrumentationScope::builder("test").build();
77+
let provider = SdkLoggerProvider::builder().build();
78+
let logger = SdkLogger::new(scope, provider);
79+
80+
// Test that clone works - this is the main goal
81+
#[allow(clippy::redundant_clone)]
82+
let _cloned_logger = logger.clone();
83+
84+
// If we reach here, clone works successfully
85+
assert!(true);
86+
}
87+
}

0 commit comments

Comments
 (0)