【问题标题】:How to avoid these keepalive@openssh.com log messages when Paramiko Python module is used?使用 Paramiko Python 模块时如何避免这些 keepalive@openssh.com 日志消息?
【发布时间】:2017-12-20 06:01:05
【问题描述】:

我正在使用 Python Paramiko 模块从 SFTP 服务器下载文件。

但它连续显示以下日志消息。

Wed Dec 20 06:51:00 2017 transport         line:1572 22192 /PoolWorker-13        139861396514560 Thread-138           DEBUG    Received global request "keepalive@openssh.com"
Wed Dec 20 06:51:00 2017 transport         line:1572 22192 /PoolWorker-13        139861396514560 Thread-138           DEBUG    Rejecting "keepalive@openssh.com" global request from server.
Wed Dec 20 06:51:00 2017 transport         line:1572 22192 /PoolWorker-13        139861395986176 Thread-140           DEBUG    Received global request "keepalive@openssh.com"
Wed Dec 20 06:51:00 2017 transport         line:1572 22192 /PoolWorker-13        139861395986176 Thread-140           DEBUG    Rejecting "keepalive@openssh.com" global request from server.

为了避免上述行显示在 Paramiko 模块的日志中,需要进行哪些更改?我在 Python 2.7.6 上使用 Paramiko 2.1.2 模块。如果我们使用 pysftp 模块而不是 Paramiko,这些日志行会消失吗?

【问题讨论】:

    标签: python python-2.7 logging sftp paramiko


    【解决方案1】:

    使用Logger.addFilter 过滤掉它们:

    class KeepalivesFilter (object):
        def filter(self, record):
            return record.msg.find('keepalive@openssh.com') < 0
    
    paramiko.util.get_logger('paramiko.transport').addFilter(KeepalivesFilter())
    

    (使用 pysftp 无济于事,因为它在内部使用 Paramiko)

    【讨论】:

    • 我试过这个过滤器但它不起作用,我也对其进行了修改但仍然不起作用
    • 为我工作。将您的代码附加到问题中。我们需要minimal reproducible example
    • 我最终做了如下类 KeepalivesFilter(logging.Filter): def filter(self, record): return 0 if record.getMessage().find('keepalive@openssh.com') name) \n LOG.addFilter(KeepalivesFilter()) 不起作用
    • 我也尝试了 paramiko.util.get_logger,就像你的例子一样
    • 再次向我们展示minimal reproducible example。将代码附加到您的问题中。
    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2019-05-27
    • 2015-10-22
    • 2014-06-02
    相关资源
    最近更新 更多