Add cmdline to tracing output

Can come in handy when other people report problems and show the error
message or full log, but not the command line.

Setting that span to `level = "error"` ensures that it won't be disabled
by level filters.
This commit is contained in:
Lucas Schwiderski 2024-07-26 16:03:04 +02:00
parent 6f6df14bfc
commit 4bf97e9f19
Signed by: lucas
GPG key ID: AA12679AAA6DF4D8

View file

@ -38,10 +38,21 @@ struct GlobalConfig {
}
#[tokio::main]
#[tracing::instrument]
#[tracing::instrument(level = "error", fields(cmd_line = tracing::field::Empty))]
async fn main() -> Result<()> {
color_eyre::install()?;
{
let span = tracing::Span::current();
if !span.is_disabled() {
let cmdline: String = std::env::args_os().fold(String::new(), |mut s, arg| {
s.push_str(&arg.to_string_lossy());
s
});
span.record("cmd_line", cmdline);
}
}
let matches = command!()
.subcommand_required(true)
.arg(