feat: divide logging into stdout and stderr by verbosity
This commit is contained in:
13
src/main.rs
13
src/main.rs
@@ -14,7 +14,11 @@ use std::{collections::BTreeMap, fmt::Debug, str::FromStr, sync::Arc};
|
||||
use strum::EnumString;
|
||||
use tokio::{select, signal::ctrl_c, task::JoinSet};
|
||||
use tokio_util::{sync::CancellationToken, time::FutureExt as _};
|
||||
use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan};
|
||||
use tracing::Level;
|
||||
use tracing_subscriber::{
|
||||
EnvFilter,
|
||||
fmt::{format::FmtSpan, writer::MakeWriterExt},
|
||||
};
|
||||
use twilight_gateway::{Event, EventTypeFlags, Intents, Shard, StreamExt};
|
||||
use twilight_model::{
|
||||
application::interaction::InteractionData,
|
||||
@@ -173,13 +177,16 @@ async fn main() -> Result<(), MainError> {
|
||||
|
||||
let LoggingArgs { env_filter } = logging_args;
|
||||
|
||||
let (non_blocking_writer, _guard) = tracing_appender::non_blocking(std::io::stdout());
|
||||
let (stdout, _stdout_guard) = tracing_appender::non_blocking(std::io::stdout());
|
||||
let (stderr, _stderr_guard) = tracing_appender::non_blocking(std::io::stderr());
|
||||
|
||||
let writer = stderr.with_max_level(Level::WARN).or_else(stdout);
|
||||
|
||||
tracing_subscriber::fmt()
|
||||
.pretty()
|
||||
.with_env_filter(env_filter)
|
||||
.with_span_events(FmtSpan::NEW | FmtSpan::CLOSE)
|
||||
.with_writer(non_blocking_writer)
|
||||
.with_writer(writer)
|
||||
.init();
|
||||
|
||||
tracing::debug!(?app_args, "using");
|
||||
|
||||
Reference in New Issue
Block a user