22from contextlib import contextmanager
33from functools import partial
44from logging import (DEBUG , ERROR , FileHandler , Formatter , getLogger , INFO ,
5- StreamHandler )
5+ StreamHandler , WARN )
66from os import environ , SEEK_END , utime
77from paramiko import (Agent , hostkeys , SFTPClient , SSHConfig , Transport ,
88 ConfigParseError , PasswordRequiredException ,
@@ -49,7 +49,7 @@ class CnOpts(object):
4949 True, creates a temporary file used to capture logs. If set to an
5050 existing filepath, logs will be appended.
5151 :ivar str log_level: *Default: info* - Set logging level for connection.
52- Choose between debug, error, or info .
52+ Choose between debug, error, info, or warn .
5353
5454 :returns: (obj) CnOpts - Connection options object, used for passing
5555 extended options to a Connection object.
@@ -243,11 +243,16 @@ def _set_authentication(self, password, private_key, private_key_pass):
243243
244244 def _set_logging (self ):
245245 '''Set logging location and level for connection'''
246- level_map = {'debug' : DEBUG , 'error' : ERROR , 'info' : INFO }
246+ level_map = {'debug' : DEBUG , 'error' : ERROR , 'info' : INFO :,
247+ 'quiet' : WARN , 'warn' : WARN , 'warning' : WARN }
247248 level = self ._config .get ('loglevel' ) or self ._cnopts .log_level
248- level = level_map [level .lower ().strip ('1,2,3' )]
249249
250250 try :
251+ if not isinstance (level , int ):
252+ level = level_map [level .lower ().strip ('1,2,3' )]
253+ elif level not in [DEBUG , ERROR , INFO , WARN ]:
254+ raise KeyError
255+
251256 global log
252257 log = getLogger ('SFTPretty' )
253258 if self ._cnopts .log :
@@ -269,7 +274,8 @@ def _set_logging(self):
269274 log .setLevel (level )
270275 except KeyError :
271276 raise LoggingException (('Log level must set to one of following: '
272- '[debug, error, info].' ))
277+ '[debug, error, info, quiet, warn, '
278+ f'{ DEBUG } , { ERROR } , { INFO } , { WARN } ].' ))
273279
274280 def _set_username (self , username ):
275281 '''Set the username for the connection. If not passed, then look to
0 commit comments