these messages in a background thread.
"""
def __init__(self, apifiles=None, testmode=False, async_thread=True,
- logger=logging.getLogger('vpp_papi'), loglevel='debug',
+ logger=None, loglevel=None,
read_timeout=0):
"""Create a VPP API object.
dynamically created reflecting these APIs. If not
provided this will load the API files from VPP's
default install location.
+
+ logger, if supplied, is the logging logger object to log to.
+ loglevel, if supplied, is the log level this logger is set
+ to report at (from the loglevels in the logging module).
"""
global vpp_object
vpp_object = self
+
+ if logger is None:
+ logger = logging.getLogger(__name__)
+ if loglevel is not None:
+ logger.setLevel(loglevel)
+
self.logger = logger
- logging.basicConfig(level=getattr(logging, loglevel.upper()))
self.messages = {}
self.id_names = []
localdir = os.path.dirname(os.path.realpath(main.__file__))
else:
# use cwd if there is no calling script
- localdir = os.cwd()
+ localdir = os.getcwd()
localdir_s = localdir.split(os.path.sep)
def dmatch(dir):
"""Send a binary-packed message to VPP."""
if not self.connected:
raise IOError(1, 'Not connected')
- return vpp_api.vac_write(str(buf), len(buf))
+ return vpp_api.vac_write(bytes(buf), len(buf))
def _read(self):
if not self.connected: