"git@developer.sourcefind.cn:OpenDAS/Uni-Core.git" did not exist on "8e50c5d490940ac83be6f2b61850de079f233f54"
Unverified Commit a03fd307 authored by Abrar Shivani's avatar Abrar Shivani Committed by GitHub
Browse files

feat: Add log verbosity level flag to dynamo-run cli (#780)

#### Overview:

This PR adds a command-line verbosity flag (-v, -vv) to dynamo-run to control log levels.
- Added new verbosity flag to Flags struct:
  - -v: Sets log level to debug
  - -vv: Sets log level to trace
  - No flag (default): Keeps log level at info

#### Details:
- closes GitHub issue: https://github.com/ai-dynamo/dynamo/issues/567
parent ba0a51c4
...@@ -46,6 +46,10 @@ pub struct Flags { ...@@ -46,6 +46,10 @@ pub struct Flags {
#[arg(long)] #[arg(long)]
pub model_name: Option<String>, pub model_name: Option<String>,
/// Verbose output (-v for debug, -vv for trace)
#[arg(short = 'v', action = clap::ArgAction::Count, default_value_t = 0)]
pub verbosity: u8,
/// llamacpp only /// llamacpp only
/// ///
/// The path to the tokenizer and model config because: /// The path to the tokenizer and model config because:
......
...@@ -35,6 +35,25 @@ const ZMQ_SOCKET_PREFIX: &str = "dyn"; ...@@ -35,6 +35,25 @@ const ZMQ_SOCKET_PREFIX: &str = "dyn";
const USAGE: &str = "USAGE: dynamo-run in=[http|text|dyn://<path>|batch:<folder>|none] out=ENGINE_LIST [--http-port 8080] [--model-path <path>] [--model-name <served-model-name>] [--model-config <hf-repo>] [--tensor-parallel-size=1] [--num-nodes=1] [--node-rank=0] [--leader-addr=127.0.0.1:9876] [--base-gpu-id=0] [--extra-engine-args=args.json] [--router-mode random|round-robin]"; const USAGE: &str = "USAGE: dynamo-run in=[http|text|dyn://<path>|batch:<folder>|none] out=ENGINE_LIST [--http-port 8080] [--model-path <path>] [--model-name <served-model-name>] [--model-config <hf-repo>] [--tensor-parallel-size=1] [--num-nodes=1] [--node-rank=0] [--leader-addr=127.0.0.1:9876] [--base-gpu-id=0] [--extra-engine-args=args.json] [--router-mode random|round-robin]";
fn main() -> anyhow::Result<()> { fn main() -> anyhow::Result<()> {
// Set log level based on verbosity flag
let log_level = match dynamo_run::Flags::try_parse() {
Ok(flags) => match flags.verbosity {
0 => "info",
1 => "debug",
2 => "trace",
_ => {
return Err(anyhow::anyhow!(
"Invalid verbosity level. Valid values are v (debug) or vv (trace)"
))
}
},
Err(_) => "info",
};
if log_level != "info" {
std::env::set_var("DYN_LOG", log_level);
}
logging::init(); logging::init();
// Call sub-processes before starting the Runtime machinery // Call sub-processes before starting the Runtime machinery
...@@ -116,12 +135,15 @@ async fn wrapper(runtime: dynamo_runtime::Runtime) -> anyhow::Result<()> { ...@@ -116,12 +135,15 @@ async fn wrapper(runtime: dynamo_runtime::Runtime) -> anyhow::Result<()> {
let mut in_opt = None; let mut in_opt = None;
let mut out_opt = None; let mut out_opt = None;
let args: Vec<String> = env::args().skip(1).collect(); let args: Vec<String> = env::args().skip(1).collect();
if args.is_empty() || args[0] == "-h" || args[0] == "--help" { if args.is_empty()
|| args[0] == "-h"
|| args[0] == "--help"
|| (args.iter().all(|arg| arg == "-v" || arg == "-vv"))
{
let engine_list = Output::available_engines().join("|"); let engine_list = Output::available_engines().join("|");
let usage = USAGE.replace("ENGINE_LIST", &engine_list); let usage = USAGE.replace("ENGINE_LIST", &engine_list);
println!("{usage}"); println!("{usage}");
println!("{HELP}"); println!("{HELP}");
return Ok(()); return Ok(());
} }
for arg in env::args().skip(1).take(2) { for arg in env::args().skip(1).take(2) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment