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 } , using default value' , 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 } , using default value' , 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