python variable Отключение входа в Paramiko




python ssh connect (3)

Парамико называет своих логгеров. Похоже, что он функционирует так же, как модули логирования на других языках (логирование JDK приходит на ум).

Я нашел это

logging.getLogger("paramiko").setLevel(logging.WARNING) .

(Вы можете поместить это в модуль, который импортирует paramiko - просто убедитесь, что модуль 'logging' также включен).

Мне потребовалось некоторое время, чтобы понять, как это сделать (фактически, только когда я фактически начал заниматься журналированием Java, этот ответ пришел в голову)

Я использую ssh-клиент, предоставленный Paramiko, для создания вызова функции 'remoteSSH' (имя файла - remoteConnect.py):

import paramiko
import logging
logger = paramiko.util.logging.getLogger()
logger.setLevel(logging.WARN)

def remoteSSH(username,userpasswd):
    ....

Теперь я вызываю функцию remoteSSH в другом модуле Python с именем getData () (getdata.py):

from remoteConnect import *
import logging
logger2=logging.getLogger()
logger2.setLevel(logging.INFO)

Однако вызов logger2.info('ccc') также включает все журналы уровня INFO в файле, который импортирует модуль Paramiko (т.е. remoteConnect.py )

Как отключить вход в remoteConnect.py чтобы Paramiko не выплевывал все сообщения уровня INFO?


Попробуйте это перед настройкой logger2:

logging.basicConfig(level=logging.WARN)

Вы устанавливаете уровень корневого логгера на WARN (должен быть WARNING ) в remoteConnect.py и на INFO в getdata.py . Я бы посоветовал вам избегать установки уровней в корневом логгере в случайных модулях в вашем приложении: вместо этого делайте это во всех ваших модулях, где вы хотите использовать логирование:

import logging

logger = logging.getLogger(__name__)

и используйте logger.debug(...) и т. д. в этом модуле. Затем в одном конкретном месте в вашем приложении (обычно в вашей логике, вызываемой из if __name__ == '__main__': basicConfig установите basicConfig уровни и обработчики, программно через basicConfig или набор вызовов API для добавления обработчиков, форматеров и т. Д. ., или с помощью декларативной конфигурации (например, с dictConfig API-интерфейсов fileConfig или dictConfig - here dictConfig ).







paramiko