python连接zookeeper的日志问题

用python连接zookeeper时,在终端里,一直会有zookeeper的日志冒出来,这样会很烦。

2014-07-22 10:06:19,544:10474(0x7fd459406700):ZOO_WARN@zookeeper_interest@1557: Exceeded deadline by 11ms


解决方法是在连接后设置一下zookeeper的日志等级为ERROR,这样WARN的日志就不会弹出来了

import zookeeper
zookeeper.set_debug_level(zookeeper.LOG_LEVEL_ERROR) #设置zookeeper的日志等级

因为zookeeper模块是一个编译好的c文件,通过zookeeper.__file__可以看到,'/data/msalt/third_part/zookeeper.so'

这样的话就很难查看这个模块的接口和文档

但是可以通过python的自省来看到

通过dir(zookeeper)就可以看到该模块的所以常量和方法

>>> dir(zookeeper)
['APIERROR', 'ASSOCIATING_STATE', 'AUTHFAILED', 'AUTH_FAILED_STATE', 'ApiErrorException', 'AuthFailedException', 'BADARGUMENTS', 'BADVERSION', 'BadArgumentsException', 'BadVersionException', 'CHANGED_EVENT', 'CHILD_EVENT', 'CLOSING', 'CONNECTED_STATE', 'CONNECTING_STATE', 'CONNECTIONLOSS', 'CREATED_EVENT', 'ClosingException', 'ConnectionLossException', 'DATAINCONSISTENCY', 'DELETED_EVENT', 'DataInconsistencyException', 'EPHEMERAL', 'EXPIRED_SESSION_STATE', 'INVALIDACL', 'INVALIDCALLBACK', 'INVALIDSTATE', 'InvalidACLException', 'InvalidCallbackException', 'InvalidStateException', 'LOG_LEVEL_DEBUG', 'LOG_LEVEL_ERROR', 'LOG_LEVEL_INFO', 'LOG_LEVEL_WARN', 'MARSHALLINGERROR', 'MarshallingErrorException', 'NOAUTH', 'NOCHILDRENFOREPHEMERALS', 'NODEEXISTS', 'NONODE', 'NOTEMPTY', 'NOTHING', 'NOTWATCHING_EVENT', 'NoAuthException', 'NoChildrenForEphemeralsException', 'NoNodeException', 'NodeExistsException', 'NotEmptyException', 'NothingException', 'OK', 'OPERATIONTIMEOUT', 'OperationTimeoutException', 'PERM_ADMIN', 'PERM_ALL', 'PERM_CREATE', 'PERM_DELETE', 'PERM_READ', 'PERM_WRITE', 'RUNTIMEINCONSISTENCY', 'RuntimeInconsistencyException', 'SEQUENCE', 'SESSIONEXPIRED', 'SESSIONMOVED', 'SESSION_EVENT', 'SYSTEMERROR', 'SessionExpiredException', 'SessionMovedException', 'SystemErrorException', 'UNIMPLEMENTED', 'UnimplementedException', 'ZooKeeperException', '__doc__', '__file__', '__name__', '__package__', '__version__', 'acreate', 'add_auth', 'adelete', 'aexists', 'aget', 'aget_acl', 'aget_children', 'aset', 'aset_acl', 'async', 'client_id', 'close', 'create', 'delete', 'deterministic_conn_order', 'exists', 'get', 'get_acl', 'get_children', 'init', 'is_unrecoverable', 'recv_timeout', 'set', 'set2', 'set_acl', 'set_debug_level', 'set_log_stream', 'set_watcher', 'state', 'zerror']

可以通过zookeeper.set_debug_level.__doc__来查看对于的接口说明,即文档

>>> zookeeper.set_debug_level.__doc__
'x08rief sets the debugging level for the library 

PARAMETERS:
 logLevel: One of LOG_LEVEL_ERROR, LOG_LEVEL_WARN, LOG_LEVEL_INFO or LOG_LEVEL_DEBUG

RETURNS:
 None
'
原文地址:https://www.cnblogs.com/Xjng/p/3859960.html