@@ -53,6 +53,7 @@ def _do_main(cli_args: list[str]):
5353 parser = setup_parser (cli_args )
5454 argcomplete .autocomplete (parser )
5555
56+ _handle_log_level_argument (cli_args )
5657 _handle_verbose_argument (cli_args )
5758 args = parser .parse_args (cli_args )
5859
@@ -64,8 +65,9 @@ def _do_main(cli_args: list[str]):
6465 handlers = [RichHandler (show_time = False , rich_tracebacks = True )],
6566 )
6667 else :
68+ level : str = args .log_level
6769 logging .basicConfig (
68- level = "INFO" ,
70+ level = level . upper () ,
6971 format = "%(name)s: %(message)s" ,
7072 handlers = [RichHandler (show_time = False , rich_tracebacks = True )],
7173 )
@@ -111,6 +113,13 @@ def setup_parser(args: list[str]):
111113 version = f"MultiversX Python CLI (mxpy) { version } " ,
112114 )
113115 parser .add_argument ("--verbose" , action = "store_true" , default = False )
116+ parser .add_argument (
117+ "--log-level" ,
118+ type = str ,
119+ default = config .get_log_level_from_config (),
120+ choices = ["debug" , "info" , "warning" , "error" ],
121+ help = "default: %(default)s" ,
122+ )
114123
115124 subparsers = parser .add_subparsers ()
116125 commands : list [Any ] = []
@@ -165,6 +174,17 @@ def _handle_verbose_argument(args: list[str]):
165174 args .insert (0 , verbose_arg )
166175
167176
177+ def _handle_log_level_argument (args : list [str ]):
178+ log_level_arg = "--log-level"
179+
180+ if log_level_arg in args :
181+ index = args .index (log_level_arg )
182+ log_arg = args .pop (index )
183+ log_value = args .pop (index )
184+ args .insert (0 , log_value )
185+ args .insert (0 , log_arg )
186+
187+
168188if __name__ == "__main__" :
169189 ret = main (sys .argv [1 :])
170190 sys .exit (ret )
0 commit comments