Skip to content

Commit

Permalink
Log level fix
Browse files Browse the repository at this point in the history
Signed-off-by: i1i1 <vanyarybin1@live.ru>
  • Loading branch information
i1i1 committed Sep 29, 2021
1 parent b459d4e commit dcdeca6
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 1 deletion.
6 changes: 5 additions & 1 deletion iroha_logger/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,12 @@ pub fn init(configuration: config::LoggerConfiguration) -> Option<Receiver<Telem
{
return None;
}

let level = configuration.max_log_level.into();
let subscriber_builder = tracing_subscriber::fmt().with_test_writer();
let subscriber_builder = tracing_subscriber::fmt()
.with_test_writer()
.with_max_level(tracing_subscriber::filter::LevelFilter::TRACE);

if configuration.compact_mode {
let subscriber = subscriber_builder.compact().finish();
let (subscriber, receiver) = TelemetryLayer::from_capacity(
Expand Down
51 changes: 51 additions & 0 deletions iroha_logger/tests/log_level.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#![allow(clippy::restriction, clippy::all)]

use std::time::Duration;

use iroha_logger::{
layer::{LevelFilter, EventInspectorTrait, EventSubscriber},
info, trace, debug
};
use tracing::{Event, Level, Subscriber};
use tokio::{time, sync::mpsc};

struct SenderFilter<S> {
sender: mpsc::UnboundedSender<()>,
sub: S,
}

impl<S: Subscriber> SenderFilter<S> {
pub fn new(sub: S) -> (impl Subscriber, mpsc::UnboundedReceiver<()>) {
let (sender, receiver) = mpsc::unbounded_channel();
(EventSubscriber(Self { sender, sub }), receiver)
}
}

impl<S: Subscriber> EventInspectorTrait for SenderFilter<S> {
type Subscriber = S;

fn inner_subscriber(&self) -> &Self::Subscriber {
&self.sub
}

fn event(&self, event: &Event<'_>) {
self.sender.send(()).unwrap();
self.sub.event(event)
}
}

#[tokio::test]
async fn test() {
let (sub, mut rcv) = SenderFilter::new(tracing_subscriber::fmt().with_max_level(tracing_subscriber::filter::LevelFilter::TRACE).finish());
let sub = LevelFilter::new(Level::DEBUG, sub);
tracing::subscriber::set_global_default(sub).unwrap();

trace!(a = 2, c = true);
debug!(a = 2, c = true);
info!(a = 2, c = true);

time::timeout(Duration::from_millis(10), rcv.recv()).await.unwrap().unwrap();
time::timeout(Duration::from_millis(10), rcv.recv()).await.unwrap().unwrap();
assert!(time::timeout(Duration::from_millis(10), rcv.recv()).await.is_err());
}

0 comments on commit dcdeca6

Please sign in to comment.