2011-11-15 56 views
16

Tôi đang sử dụng ssh client được cung cấp bởi paramiko để tạo 'remoteSSH' một hàm gọi (tên tập tin là remoteConnect.py):Tắt đăng nhập paramiko

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

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

Bây giờ tôi gọi hàm remoteSSH trong một mô-đun Python gọi getData() (getdata.py):

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

Tuy nhiên, một cuộc gọi đến logger2.info('ccc') cũng bật tất cả các mức INFO khai thác gỗ trong tập tin đó đang nhập các mô-đun paramiko (tức remoteConnect.py)

Làm thế nào để tắt đăng nhập remoteConnect.py để Paramiko không nhổ ra tất cả các thông báo mức INFO?

+0

Sử dụng 'WARNING' - 'WARN' không được chấp nhận. –

Trả lời

0

Hãy thử điều này trước khi thiết lập logger2:

logging.basicConfig(level=logging.WARN) 
3

Bạn đang thiết level logger gốc để WARN (nên WARNING) trong remoteConnect.py, và để INFO trong getdata.py. Tôi sẽ tư vấn cho bạn tránh thiết lập mức trên logger gốc trong module ngẫu nhiên trong ứng dụng của bạn: thay vào đó, làm điều này trong tất cả các module của bạn mà bạn muốn sử dụng khai thác gỗ:

import logging 

logger = logging.getLogger(__name__) 

và sử dụng logger.debug(...), vv trong mô-đun . Sau đó, ở một vị trí cụ thể trong ứng dụng của bạn (thường là trong logic của bạn được gọi là if __name__ == '__main__':, hãy đặt các cấp và trình xử lý mà bạn muốn, hoặc lập trình qua basicConfig hoặc một bộ các cuộc gọi API để thêm trình xử lý, trình định dạng, v.v ... hoặc thông qua việc sử dụng một cấu hình tường thuật (ví dụ sử dụng fileConfig hoặc dictConfig API - tài liệu here)

35

tên paramiko logggers nó dường như với chức năng như các module đăng nhập bằng các ngôn ngữ khác (JDK khai thác gỗ nói đến cái tâm) làm

tôi... ve thấy rằng

logging.getLogger("paramiko").setLevel(logging.WARNING) giúp.

(Bạn có thể đặt điều này bên trong mô-đun đang nhập paramiko - chỉ cần đảm bảo mô-đun 'ghi nhật ký' được bật).

Tôi đã mất một thời gian để tìm ra cách để làm điều này (trên thực tế, nó không phải là cho đến khi tôi thực sự bắt đầu đối phó với Java đăng nhập mà câu trả lời này lóe lên trong óc)

+0

mô-đun 'pysftp' sử dụng' paramiko'. Bí quyết của bạn là isefull cho điều đó. Cảm ơn! – ssoto