66
77from  cycode .cli  import  consts 
88from  cycode .cli .user_settings .configuration_manager  import  ConfigurationManager 
9+ from  cycode .cyclient .config_dev  import  DEV_MODE_ENV_VAR_NAME , DEV_TENANT_ID_ENV_VAR_NAME 
910
10- # set io encoding (for windows) 
11- from  .config_dev  import  DEV_MODE_ENV_VAR_NAME , DEV_TENANT_ID_ENV_VAR_NAME 
1211
13- sys .stdout .reconfigure (encoding = 'UTF-8' )
14- sys .stderr .reconfigure (encoding = 'UTF-8' )
12+ def  _set_io_encodings () ->  None :
13+     # set io encoding (for Windows) 
14+     sys .stdout .reconfigure (encoding = 'UTF-8' )
15+     sys .stderr .reconfigure (encoding = 'UTF-8' )
16+ 
17+ 
18+ _set_io_encodings ()
1519
1620# logs 
1721logging .basicConfig (
18-     stream = sys .stdout ,
19-     level = logging .DEBUG ,
22+     stream = sys .stderr ,
23+     level = logging .INFO ,
2024    format = '%(asctime)s [%(name)s] %(levelname)s: %(message)s' ,
2125    datefmt = '%Y-%m-%d %H:%M:%S' ,
2226)
3438    consts .TIMEOUT_ENV_VAR_NAME : 300 ,
3539    consts .LOGGING_LEVEL_ENV_VAR_NAME : logging .INFO ,
3640    DEV_MODE_ENV_VAR_NAME : 'False' ,
37-     consts .BATCH_SIZE_ENV_VAR_NAME : 20 ,
3841}
3942
4043configuration  =  dict (DEFAULT_CONFIGURATION , ** os .environ )
4144
45+ _CREATED_LOGGERS  =  set ()
46+ 
4247
4348def  get_logger (logger_name : Optional [str ] =  None ) ->  logging .Logger :
44-     logger  =  logging .getLogger (logger_name )
45-     level  =  _get_val_as_string (consts .LOGGING_LEVEL_ENV_VAR_NAME )
46-     level  =  level  if  level  in  logging ._nameToLevel  else  int (level )
47-     logger .setLevel (level )
49+     config_level  =  _get_val_as_string (consts .LOGGING_LEVEL_ENV_VAR_NAME )
50+     level  =  logging .getLevelName (config_level )
51+ 
52+     new_logger  =  logging .getLogger (logger_name )
53+     new_logger .setLevel (level )
54+ 
55+     _CREATED_LOGGERS .add (new_logger )
4856
49-     return  logger 
57+     return  new_logger 
58+ 
59+ 
60+ def  set_logging_level (level : int ) ->  None :
61+     for  created_logger  in  _CREATED_LOGGERS :
62+         created_logger .setLevel (level )
5063
5164
5265def  _get_val_as_string (key : str ) ->  str :
@@ -66,15 +79,20 @@ def _get_val_as_int(key: str) -> Optional[int]:
6679    return  None 
6780
6881
69- logger  =  get_logger ('cycode cli' )
82+ def  _is_valid_url (url : str ) ->  bool :
83+     try :
84+         urlparse (url )
85+         return  True 
86+     except  ValueError  as  e :
87+         logger .warning (f'Invalid cycode api url: { url }  , e )
88+         return  False 
7089
90+ 
91+ logger  =  get_logger ('cycode cli' )
7192configuration_manager  =  ConfigurationManager ()
7293
7394cycode_api_url  =  configuration_manager .get_cycode_api_url ()
74- try :
75-     urlparse (cycode_api_url )
76- except  ValueError  as  e :
77-     logger .warning (f'Invalid cycode api url: { cycode_api_url }  , e )
95+ if  not  _is_valid_url (cycode_api_url ):
7896    cycode_api_url  =  consts .DEFAULT_CYCODE_API_URL 
7997
8098timeout  =  _get_val_as_int (consts .CYCODE_CLI_REQUEST_TIMEOUT_ENV_VAR_NAME )
@@ -83,5 +101,3 @@ def _get_val_as_int(key: str) -> Optional[int]:
83101
84102dev_mode  =  _get_val_as_bool (DEV_MODE_ENV_VAR_NAME )
85103dev_tenant_id  =  _get_val_as_string (DEV_TENANT_ID_ENV_VAR_NAME )
86- batch_size  =  _get_val_as_int (consts .BATCH_SIZE_ENV_VAR_NAME )
87- verbose  =  _get_val_as_bool (consts .VERBOSE_ENV_VAR_NAME )
0 commit comments