Expand description
Sentry slog Integration.
This mainly provides the SentryDrain, which wraps another slog::Drain
and can be configured to forward slog::Records to Sentry.
The SentryDrain can be used to create a slog::Logger.
The integration also supports slog::KV pairs. They will be added to the
breadcrumb data or the event extra properties respectively.
§Examples
use sentry_slog::SentryDrain;
let _sentry = sentry::init(());
let drain = SentryDrain::new(slog::Discard);
let root = slog::Logger::root(drain, slog::o!("global_kv" => 1234));
slog::info!(root, "recorded as breadcrumb"; "breadcrumb_kv" => Some("breadcrumb"));
slog::warn!(root, "recorded as regular event"; "event_kv" => "event");
let breadcrumb = &captured_event.breadcrumbs.as_ref()[0];
assert_eq!(
breadcrumb.message.as_deref(),
Some("recorded as breadcrumb")
);
assert_eq!(breadcrumb.data["breadcrumb_kv"], "breadcrumb");
assert_eq!(breadcrumb.data["global_kv"], 1234);
assert_eq!(
captured_event.message.as_deref(),
Some("recorded as regular event")
);
assert_eq!(captured_event.extra["event_kv"], "event");
assert_eq!(captured_event.extra["global_kv"], 1234);
slog::crit!(root, "recorded as exception event");
assert_eq!(
captured_event.message.as_deref(),
Some("recorded as exception event")
);The Drain can also be customized with a filter, and a mapper:
use sentry_slog::{exception_from_record, LevelFilter, RecordMapping, SentryDrain};
let drain = SentryDrain::new(slog::Discard)
.filter(|level| match level {
slog::Level::Critical | slog::Level::Error => LevelFilter::Event,
_ => LevelFilter::Ignore,
})
.mapper(|record, kv| match record.level() {
slog::Level::Critical | slog::Level::Error => {
RecordMapping::Event(exception_from_record(record, kv))
}
_ => RecordMapping::Ignore,
});When a mapper is specified, a corresponding filter should also be
provided.
Structs§
- Sentry
Drain - A Drain which passes all
Records to Sentry.
Enums§
- Level
Filter - The action that Sentry should perform for a
slog::Level. - Record
Mapping - The type of Data Sentry should ingest for a
slog::Record.
Functions§
- breadcrumb_
from_ record - Creates a Sentry
Breadcrumbfrom theRecord. - convert_
log_ level - Converts a
slog::Levelto a SentryLevel - default_
filter - The default slog filter.
- event_
from_ record - Creates a simple message
Eventfrom theRecord. - exception_
from_ record - Creates an exception
Eventfrom theRecord.