[−][src]Crate sentry_slog
Sentry slog
Integration.
This mainly provides the SentryDrain
, which wraps another slog::Drain
and can be configured to forward slog::Record
s to Sentry.
The SentryDrain
can be used to create a slog::Logger
.
NOTE: This integration currently does not process any slog::KV
pairs,
but support for this will be added in the future.
Examples
use sentry::{init, ClientOptions}; use sentry_slog::SentryDrain; let _sentry = sentry::init(()); let drain = SentryDrain::new(slog::Discard); let root = slog::Logger::root(drain, slog::o!()); slog::info!(root, "recorded as breadcrumb"); slog::warn!(root, "recorded as regular event"); assert_eq!( captured_event.breadcrumbs.as_ref()[0].message.as_deref(), Some("recorded as breadcrumb") ); assert_eq!( captured_event.message.as_deref(), Some("recorded as regular event") ); slog::crit!(root, "recorded as exception event"); assert_eq!(captured_event.exception.len(), 1);
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
SentryDrain | A Drain which passes all |
Enums
LevelFilter | The action that Sentry should perform for a |
RecordMapping | The type of Data Sentry should ingest for a |
Functions
breadcrumb_from_record | Creates a Sentry [ |
convert_log_level | Converts a |
default_filter | The default slog filter. |
event_from_record | Creates a simple message [ |
exception_from_record | Creates an exception [ |