2017-12-20 40 views
2

SFTP 서버에서 파일을 다운로드하기 위해 Python Paramiko 모듈을 사용하고 있습니다.Paramiko Python 모듈을 사용할 때 이러한 [email protected] 로그 메시지를 피하는 방법은 무엇입니까?

그러나 다음과 같은 로그 메시지가 계속 표시됩니다.

Wed Dec 20 06:51:00 2017 transport   line:1572 22192 /PoolWorker-13  139861396514560 Thread-138   DEBUG Received global request "[email protected]" 
Wed Dec 20 06:51:00 2017 transport   line:1572 22192 /PoolWorker-13  139861396514560 Thread-138   DEBUG Rejecting "[email protected]" global request from server. 
Wed Dec 20 06:51:00 2017 transport   line:1572 22192 /PoolWorker-13  139861395986176 Thread-140   DEBUG Received global request "[email protected]" 
Wed Dec 20 06:51:00 2017 transport   line:1572 22192 /PoolWorker-13  139861395986176 Thread-140   DEBUG Rejecting "[email protected]" global request from server. 

Paramiko 모듈의 로그에 위의 행이 표시되지 않도록하려면 어떻게 변경해야합니까? Python 2.7.6에서 Paramiko 2.1.2 모듈을 사용하고 있습니다. Paramiko 대신 pysftp 모듈을 사용하면 로그 라인이 사라지나요?

답변

2

Logger.addFilter를 사용하여 필터링 :

class KeepalivesFilter (object): 
    def filter(self, record): 
     return record.msg.find('[email protected]') < 0 

paramiko.util.get_logger('paramiko.transport').addFilter(KeepalivesFilter()) 

+0

내가이 필터를 시도했지만 작동하지 않습니다 (내부적 Paramiko를 사용하기 때문에 도움이되지 않습니다 pysftp를 사용하여), 나는 또한 수정 한 하지만 여전히 작동하지 않습니다. – user2753523

+0

저에게 맞습니다. 질문에 코드를 추가하십시오. 우리는 [mcve]가 필요합니다. –

+0

내가 클래스 KeepalivesFilter (logging.Filter) 다음과 같은 일을 endedup : 데프 필터 (자기 기록) : 반환 다른 0 record.getMessage()을 찾을 경우 ('[email protected] ') <0 1 . \ n LOG = logging.getLogger (__ name__) \ n LOG.addFilter (KeepalivesFilter은()) 가 – user2753523