@@ -172,7 +172,7 @@ def cli(): ...
172172
173173
174174@cli .command ()
175- @click .option ("--trace " , "trace " , is_flag = True , default = False )
175+ @click .option ("--log-level " , "log_level " , default = "INFO" , type = click . Choice ([ "TRACE" , "DEBUG" , "INFO" , "WARNING" , "ERROR" ], case_sensitive = False ), show_default = True )
176176@click .option ("--debug" , "debug" , is_flag = True , default = False )
177177@click .option (
178178 "--socket" , "tcp" , default = None , type = int , help = "start a TCP server"
@@ -186,7 +186,7 @@ def cli(): ...
186186 "--port" , "port" , default = None , type = int , help = "Port for TCP and WS server"
187187)
188188def start_lsp (
189- trace : bool ,
189+ log_level : str ,
190190 debug : bool ,
191191 tcp : int | None ,
192192 ws : bool ,
@@ -215,7 +215,7 @@ def start_lsp(
215215 raise ValueError ("Specify either --tcp, --ws or --stdio" )
216216
217217 asyncio .run (
218- wm_lsp_server .start (comm_type = comm_type , host = host , port = port , trace = trace )
218+ wm_lsp_server .start (comm_type = comm_type , host = host , port = port , log_level = log_level )
219219 )
220220
221221
@@ -247,7 +247,7 @@ def run(ctx) -> None:
247247 workdir_path : pathlib .Path = pathlib .Path (os .getcwd ())
248248 processed_args_count : int = 0
249249 concurrently : bool = False
250- trace : bool = False
250+ log_level : str = "INFO"
251251 no_env_config : bool = False
252252 save_results : bool = True
253253 map_payload_fields : set [str ] = set ()
@@ -272,8 +272,8 @@ def run(ctx) -> None:
272272 projects .append (project )
273273 elif arg == "--concurrently" :
274274 concurrently = True
275- elif arg == "--trace" :
276- trace = True
275+ elif arg . startswith ( "--log-level" ) :
276+ log_level = arg . removeprefix ( "--log-level=" ). upper ()
277277 elif arg == "--no-env-config" :
278278 no_env_config = True
279279 elif arg == "--no-save-results" :
@@ -287,7 +287,7 @@ def run(ctx) -> None:
287287 break
288288 processed_args_count += 1
289289
290- logger_utils .init_logger (log_name = "cli" , trace = trace , stdout = True )
290+ logger_utils .init_logger (log_name = "cli" , log_level = log_level , stdout = True )
291291
292292 # Parse handler config from env vars
293293 handler_config_overrides : dict [str , dict [str , dict [str , str ]]] = {}
@@ -359,6 +359,7 @@ def run(ctx) -> None:
359359 save_results ,
360360 map_payload_fields ,
361361 own_server = not shared_server ,
362+ log_level = log_level ,
362363 )
363364 )
364365 click .echo (result .output )
@@ -384,11 +385,11 @@ def run(ctx) -> None:
384385
385386
386387@cli .command ()
387- @click .option ("--trace " , "trace " , is_flag = True , default = False )
388+ @click .option ("--log-level " , "log_level " , default = "INFO" , type = click . Choice ([ "TRACE" , "DEBUG" , "INFO" , "WARNING" , "ERROR" ], case_sensitive = False ), show_default = True )
388389@click .option ("--debug" , "debug" , is_flag = True , default = False )
389390@click .option ("--recreate" , "recreate" , is_flag = True , default = False )
390391@click .option ("--shared-server" , "shared_server" , is_flag = True , default = False )
391- def prepare_envs (trace : bool , debug : bool , recreate : bool , shared_server : bool ) -> None :
392+ def prepare_envs (log_level : str , debug : bool , recreate : bool , shared_server : bool ) -> None :
392393 """
393394 `prepare-envs` should be called from workspace/project root directory.
394395 """
@@ -402,7 +403,7 @@ def prepare_envs(trace: bool, debug: bool, recreate: bool, shared_server: bool)
402403 except Exception as e :
403404 logger .info (e )
404405
405- logger_utils .init_logger (log_name = "cli" , trace = trace , stdout = True )
406+ logger_utils .init_logger (log_name = "cli" , log_level = log_level , stdout = True )
406407 user_messages ._notification_sender = show_user_message
407408
408409 try :
@@ -411,6 +412,7 @@ def prepare_envs(trace: bool, debug: bool, recreate: bool, shared_server: bool)
411412 workdir_path = pathlib .Path (os .getcwd ()),
412413 recreate = recreate ,
413414 own_server = not shared_server ,
415+ log_level = log_level ,
414416 )
415417 )
416418 except prepare_envs_cmd .PrepareEnvsFailed as exception :
@@ -423,11 +425,11 @@ def prepare_envs(trace: bool, debug: bool, recreate: bool, shared_server: bool)
423425
424426
425427@cli .command ()
426- @click .option ("--trace " , "trace " , is_flag = True , default = False )
428+ @click .option ("--log-level " , "log_level " , default = "INFO" , type = click . Choice ([ "TRACE" , "DEBUG" , "INFO" , "WARNING" , "ERROR" ], case_sensitive = False ), show_default = True )
427429@click .option ("--debug" , "debug" , is_flag = True , default = False )
428430@click .option ("--project" , "project" , type = str )
429431@click .option ("--shared-server" , "shared_server" , is_flag = True , default = False )
430- def dump_config (trace : bool , debug : bool , project : str | None , shared_server : bool ):
432+ def dump_config (log_level : str , debug : bool , project : str | None , shared_server : bool ):
431433 if debug is True :
432434 import debugpy
433435
@@ -441,7 +443,7 @@ def dump_config(trace: bool, debug: bool, project: str | None, shared_server: bo
441443 click .echo ("--project parameter is required" , err = True )
442444 return
443445
444- logger_utils .init_logger (log_name = "cli" , trace = trace , stdout = True )
446+ logger_utils .init_logger (log_name = "cli" , log_level = log_level , stdout = True )
445447 user_messages ._notification_sender = show_user_message
446448
447449 try :
@@ -450,6 +452,7 @@ def dump_config(trace: bool, debug: bool, project: str | None, shared_server: bo
450452 workdir_path = pathlib .Path (os .getcwd ()),
451453 project_name = project ,
452454 own_server = not shared_server ,
455+ log_level = log_level ,
453456 )
454457 )
455458 except dump_config_cmd .DumpFailed as exception :
@@ -459,18 +462,18 @@ def dump_config(trace: bool, debug: bool, project: str | None, shared_server: bo
459462
460463@cli .command ()
461464@click .option ("--workdir" , "workdir" , default = None , type = str , help = "Workspace root directory" )
462- @click .option ("--trace " , "trace " , is_flag = True , default = False )
463- def start_mcp (workdir : str | None , trace : bool ):
465+ @click .option ("--log-level " , "log_level " , default = "INFO" , type = click . Choice ([ "TRACE" , "DEBUG" , "INFO" , "WARNING" , "ERROR" ], case_sensitive = False ), show_default = True )
466+ def start_mcp (workdir : str | None , log_level : str ):
464467 """Start the FineCode MCP server (stdio). Connects to a running FineCode WM Server."""
465468 from finecode import mcp_server
466469
467- logger_utils .init_logger (log_name = "mcp_server" , trace = trace , stdout = False )
470+ logger_utils .init_logger (log_name = "mcp_server" , log_level = log_level , stdout = False )
468471 workdir_path = pathlib .Path (workdir ) if workdir else pathlib .Path (os .getcwd ())
469472 mcp_server .start (workdir_path )
470473
471474
472475@cli .command ()
473- @click .option ("--trace " , "trace " , is_flag = True , default = False )
476+ @click .option ("--log-level " , "log_level " , default = "INFO" , type = click . Choice ([ "TRACE" , "DEBUG" , "INFO" , "WARNING" , "ERROR" ], case_sensitive = False ), show_default = True )
474477@click .option (
475478 "--port-file" ,
476479 "port_file" ,
@@ -487,11 +490,11 @@ def start_mcp(workdir: str | None, trace: bool):
487490 show_default = True ,
488491 help = "Seconds to wait after the last client disconnects before shutting down." ,
489492)
490- def start_wm_server (trace : bool , port_file : str | None , disconnect_timeout : int ):
493+ def start_wm_server (log_level : str , port_file : str | None , disconnect_timeout : int ):
491494 """Start the FineCode WM Server standalone (TCP JSON-RPC). Auto-stops when all clients disconnect."""
492495 from finecode .wm_server import wm_server
493496
494- log_file_path = logger_utils .init_logger (log_name = "wm_server" , trace = trace , stdout = False )
497+ log_file_path = logger_utils .init_logger (log_name = "wm_server" , log_level = log_level , stdout = False )
495498 wm_server ._log_file_path = log_file_path
496499 port_file_path = pathlib .Path (port_file ) if port_file else None
497500 asyncio .run (wm_server .start_standalone (port_file = port_file_path , disconnect_timeout = disconnect_timeout ))
0 commit comments