feat: support configuring the EnvFilter for tracing
This commit is contained in:
35
src/main.rs
35
src/main.rs
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user