1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use crate::*;
use slog::{Never, OwnedKV, SendSyncRefUnwindSafeDrain};
use std::sync::Arc;
pub fn drain_from_env(
) -> Result<impl SendSyncRefUnwindSafeDrain<Ok = (), Err = Never>, ConfigFromEnvError> {
Ok(config_from_env()?.build())
}
pub type Logger = slog::Logger<Arc<dyn SendSyncRefUnwindSafeDrain<Ok = (), Err = Never>>>;
pub fn logger_from_env<T>(values: OwnedKV<T>) -> Result<Logger, ConfigFromEnvError>
where
T: slog::SendSyncRefUnwindSafeKV + 'static,
{
let drain = drain_from_env()?;
Ok(slog::Logger::root(drain, values))
}