Troubleshooting PubNub Python SDK
How to enable logging
Use this code to enable logging
import pubnub as pn_module
import logging
pn_module.set_stream_logger('pubnub', logging.DEBUG)
Package-level function call
You should call the set_stream_logger()
function on the package level and not the PubNub instance.
How to find the version of your SDK
You can access your SDK version via constant
from pubnub.pubnub import PubNub
PubNub.SDK_VERSION
Error handling with sync()
In case of sync()
calls errors will be wrapped out by either Envelope
or PubNubAsyncioException
which both implement two object fields:
-
e.result - a request result object in case of success, otherwise
None
-
e.status -
PNStatus
object with useful information about the finished request. You may check if it was an error or a success usinge.is_error()
helper.
sync() usage
try:
e = pubnub.publish().channel("my_channel").message("hello!").sync()
print(str(e.result))
except PubNubException as e:
print("Error %s" % str(e))
if status is not None:
print("Error category #%d" % e.status.category)
Error handling with async()
async()
call lets you check for errors using status.is_error()
helper:
def callback(result, status):
if status.is_error():
print("Error %s" % str(status.error_data.exception))
print("Error category #%d" % status.category)
else:
print(str(result))