I am using the ssh client provided by Paramiko to create a function call remoteSSH
(the file name is remoteConnect.py
):
import paramiko import logging logger = paramiko.util.logging.getLogger() logger.setLevel(logging.WARN) def remoteSSH(username,userpasswd): ....
Now I am calling the remoteSSH
function in another Python module called getData()
(getdata.py
):
from remoteConnect import * import logging logger2=logging.getLogger() logger2.setLevel(logging.INFO)
However, a call to logger2.info('ccc')
also turns on all INFO level logging in the file that is importing the Paramiko module (i.e. remoteConnect.py
)
How do I turn off logging in remoteConnect.py
so that Paramiko does not spit out all the INFO level messages?
Paramiko names its logggers. It seems to function as the logging modules in other languages (JDK logging comes to mind) do.
I've found that
logging.getLogger("paramiko").setLevel(logging.WARNING)
helps.
(You can put this inside the module that's importing paramiko - just make sure the 'logging' module is enabled as well).
It took me a while to figure out how to do this (in fact, it wasn't until I actually started dealing with Java logging that this answer came to mind)
You're setting the root logger's level to WARN
(should be WARNING
) in remoteConnect.py
, and to INFO
in getdata.py
. I would advise that you avoid setting levels on the root logger in random modules in your application: instead, do this in all your modules where you want to use logging:
import logging logger = logging.getLogger(__name__)
and use logger.debug(...)
, etc. in that module. Then, in one specific place in your application (typically in your logic called from if __name__ == '__main__':
, set the levels and handlers that you want, either programmatically via basicConfig
or a set of API calls to add handlers, formatters etc., or through the use of a declarative configuration (e.g. using fileConfig
or dictConfig
APIs - documented here).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With