feat: support configuring the EnvFilter for tracing

This commit is contained in:
2026-03-23 01:23:08 -04:00
parent 949ba4c2ed
commit abe6ff58ca

View File

@@ -4,7 +4,7 @@ use opendal::{IntoOperatorUri, Operator, OperatorUri};
use secrecy::{ExposeSecret, SecretString};
use snafu::Snafu;
use std::{fmt::Debug, str::FromStr};
use tracing_subscriber::fmt::format::FmtSpan;
use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan};
use twilight_gateway::{Event, EventTypeFlags, Intents, Shard, ShardId, StreamExt};
use twilight_model::id::{Id, marker::UserMarker};
@@ -44,7 +44,7 @@ impl Debug for OpendalOperator {
}
#[derive(Debug, Parser)]
struct Args {
struct AppArgs {
#[arg(long, env)]
discord_token: SecretString,
@@ -55,26 +55,47 @@ struct Args {
bot_owner: Id<UserMarker>,
}
#[derive(Parser)]
struct LoggingArgs {
#[arg(long = "logging-directives", env = "RUST_LOG", default_value = "info")]
env_filter: EnvFilter,
}
#[derive(Parser)]
struct Args {
#[clap(flatten)]
app_args: AppArgs,
#[clap(flatten)]
logging_args: LoggingArgs,
}
#[derive(Debug, Snafu)]
enum MainError {}
#[snafu::report]
#[tokio::main]
async fn main() -> Result<(), MainError> {
let Args {
logging_args,
app_args,
} = Parser::parse();
let LoggingArgs { env_filter } = logging_args;
tracing_subscriber::fmt()
.pretty()
.with_env_filter(env_filter)
.with_span_events(FmtSpan::NEW | FmtSpan::CLOSE)
.init();
let args = Parser::parse();
tracing::debug!(?app_args, "using");
tracing::debug!(?args, "using");
let Args {
let AppArgs {
discord_token,
storage,
bot_owner,
} = args;
} = app_args;
rustls::crypto::aws_lc_rs::default_provider()
.install_default()