make a layer filter to to prevent polling timeout errors from clogging logs

This commit is contained in:
mykola2312 2024-02-27 01:13:43 +02:00
parent c3a97c74e3
commit 6ce2a42d4e

View file

@ -1,10 +1,26 @@
use std::io;
use tracing::level_filters::LevelFilter;
use tracing::{level_filters::LevelFilter, Subscriber};
use tracing_appender::rolling::{RollingFileAppender, Rotation};
use tracing_subscriber::{fmt, layer::SubscriberExt, prelude::*};
use tracing_subscriber::{fmt, layer::SubscriberExt, layer::Filter, prelude::*};
use super::util::VAR_LOG;
// A layer filter to prevent polling timeout errors from clogging logs
struct TeloxideNoiseFilter {}
impl<S: Subscriber> Filter<S> for TeloxideNoiseFilter {
fn enabled(&self, meta: &tracing::Metadata<'_>, _: &tracing_subscriber::layer::Context<'_,S>) -> bool {
if let Some(module_path) = meta.module_path() {
if module_path == "teloxide::error_handlers" {
false
} else {
true
}
} else {
true
}
}
}
pub fn log_init() {
let log_appender = RollingFileAppender::builder()
.rotation(Rotation::DAILY)
@ -15,10 +31,12 @@ pub fn log_init() {
let stderr_layer = fmt::layer()
.with_writer(io::stderr)
.with_filter(TeloxideNoiseFilter {})
.with_filter(LevelFilter::ERROR);
let file_layer = fmt::layer()
.with_writer(log_appender)
.with_filter(TeloxideNoiseFilter {})
.with_filter(LevelFilter::INFO);
tracing_subscriber::registry()