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 using e.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))
Last updated on