Skip to content

Commit 14bd54e

Browse files
committed
improve
1 parent 0da7c5e commit 14bd54e

File tree

1 file changed

+14
-26
lines changed

1 file changed

+14
-26
lines changed

sentry-log/src/logger.rs

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,7 @@ pub enum RecordMapping {
4141
/// Captures multiple items to Sentry.
4242
/// Nesting multiple `RecordMapping::Combined` is not supported and will cause the mappings to
4343
/// be ignored.
44-
Combined(CombinedRecordMapping),
45-
}
46-
47-
/// A list of record mappings.
48-
#[derive(Debug)]
49-
pub struct CombinedRecordMapping(Vec<RecordMapping>);
50-
51-
impl From<RecordMapping> for CombinedRecordMapping {
52-
fn from(value: RecordMapping) -> Self {
53-
match value {
54-
RecordMapping::Combined(combined) => combined,
55-
_ => CombinedRecordMapping(vec![value]),
56-
}
57-
}
58-
}
59-
60-
impl From<Vec<RecordMapping>> for CombinedRecordMapping {
61-
fn from(value: Vec<RecordMapping>) -> Self {
62-
Self(value)
63-
}
44+
Combined(Vec<RecordMapping>),
6445
}
6546

6647
/// The default log filter.
@@ -163,7 +144,7 @@ impl<L: log::Log> log::Log for SentryLogger<L> {
163144
}
164145

165146
fn log(&self, record: &log::Record<'_>) {
166-
let items: RecordMapping = match &self.mapper {
147+
let items = match &self.mapper {
167148
Some(mapper) => mapper(record),
168149
None => {
169150
let filter = (self.filter)(record.metadata());
@@ -181,13 +162,12 @@ impl<L: log::Log> log::Log for SentryLogger<L> {
181162
if filter.contains(LogFilter::Log) {
182163
items.push(RecordMapping::Log(log_from_record(record)));
183164
}
184-
RecordMapping::Combined(CombinedRecordMapping(items))
165+
RecordMapping::Combined(items)
185166
}
186167
};
187-
let items = CombinedRecordMapping::from(items);
188168

189-
for item in items.0 {
190-
match item {
169+
fn handle_single_mapping(mapping: RecordMapping) {
170+
match mapping {
191171
RecordMapping::Ignore => {}
192172
RecordMapping::Breadcrumb(breadcrumb) => sentry_core::add_breadcrumb(breadcrumb),
193173
RecordMapping::Event(event) => {
@@ -199,12 +179,20 @@ impl<L: log::Log> log::Log for SentryLogger<L> {
199179
}
200180
RecordMapping::Combined(_) => {
201181
sentry_core::sentry_debug!(
202-
"[SentryLogger] found nested CombinedEventMapping, ignoring"
182+
"[SentryLogger] found nested RecordMapping::Combined, ignoring"
203183
)
204184
}
205185
}
206186
}
207187

188+
if let RecordMapping::Combined(items) = items {
189+
for item in items {
190+
handle_single_mapping(item);
191+
}
192+
} else {
193+
handle_single_mapping(items);
194+
}
195+
208196
self.dest.log(record)
209197
}
210198

0 commit comments

Comments
 (0)