differentiate logging between DEBUG / PORTEVENT / WARNING / ERROR

let's make sure we don't spam the logs about each and every USB transfer
creation...
This commit is contained in:
Harald Welte 2021-06-03 19:57:49 +02:00
parent 4c742e931a
commit 5f00216c4a
2 changed files with 22 additions and 22 deletions

View File

@ -102,7 +102,7 @@ USB_Interface::~USB_Interface()
USB_Device::USB_Device(USB__PT_PROVIDER *port, libusb_device_handle *handle, unsigned int id) USB_Device::USB_Device(USB__PT_PROVIDER *port, libusb_device_handle *handle, unsigned int id)
: mPort(port), mHandle(handle), mID(id) : mPort(port), mHandle(handle), mID(id)
{ {
log(TTCN_WARNING, "creating"); log(TTCN_DEBUG, "creating");
} }
USB_Device::USB_Device(const USB_Device &in) USB_Device::USB_Device(const USB_Device &in)
@ -110,12 +110,12 @@ USB_Device::USB_Device(const USB_Device &in)
this->mPort = in.mPort; this->mPort = in.mPort;
this->mHandle = in.mHandle; this->mHandle = in.mHandle;
this->mID = in.mID; this->mID = in.mID;
log(TTCN_WARNING, "copying from %p", &in); log(TTCN_DEBUG, "copying from %p", &in);
} }
USB_Device::~USB_Device() USB_Device::~USB_Device()
{ {
log(TTCN_WARNING, "destroying"); log(TTCN_DEBUG, "destroying");
/* iterate over map of interfaces: destroy the USB_Interface objects in it; clear map */ /* iterate over map of interfaces: destroy the USB_Interface objects in it; clear map */
std::map<unsigned int,USB_Interface *>::iterator it; std::map<unsigned int,USB_Interface *>::iterator it;
@ -186,7 +186,7 @@ void USB_Transfer::init(const USB_Device *dev, unsigned int id, struct libusb_tr
mDev = dev; mDev = dev;
mID = id; mID = id;
mXfer = lx; mXfer = lx;
log("transfer created\n"); log(TTCN_DEBUG, "transfer created\n");
} }
void USB_Transfer::submit() void USB_Transfer::submit()
@ -198,19 +198,19 @@ void USB_Transfer::submit()
TTCN_error("Error during libusb_submit_transfer(): %s", TTCN_error("Error during libusb_submit_transfer(): %s",
libusb_strerror((libusb_error) rc)); libusb_strerror((libusb_error) rc));
} }
log("transfer submitted\n"); log(TTCN_DEBUG, "transfer submitted (len=%d)\n", mXfer->length);
} }
void USB_Transfer::complete() void USB_Transfer::complete()
{ {
log("transfer completed\n"); log(TTCN_DEBUG, "transfer completed (len=%d)\n", mXfer->length);
/* report back to TTCN-3 port user */ /* report back to TTCN-3 port user */
mDev->mPort->transfer_completed(this); mDev->mPort->transfer_completed(this);
} }
void USB_Transfer::log(const char *fmt, ...) void USB_Transfer::log(TTCN_Logger::Severity msg_severity, const char *fmt, ...)
{ {
TTCN_Logger::begin_event(TTCN_WARNING); TTCN_Logger::begin_event(msg_severity);
TTCN_Logger::log_event("USB Test port (%s): T %p ", mDev->mPort->get_name(), this); TTCN_Logger::log_event("USB Test port (%s): T %p ", mDev->mPort->get_name(), this);
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
@ -228,7 +228,7 @@ USB_Transfer::~USB_Transfer()
mXfer->buffer = NULL; mXfer->buffer = NULL;
} }
libusb_free_transfer(mXfer); libusb_free_transfer(mXfer);
log("transfer destroyed\n"); log(TTCN_DEBUG, "transfer destroyed\n");
} }
@ -247,9 +247,9 @@ USB__PT_PROVIDER::~USB__PT_PROVIDER()
{ {
} }
void USB__PT_PROVIDER::log(const char *fmt, ...) void USB__PT_PROVIDER::log(TTCN_Logger::Severity msg_severity, const char *fmt, ...)
{ {
TTCN_Logger::begin_event(TTCN_WARNING); TTCN_Logger::begin_event(msg_severity);
TTCN_Logger::log_event("USB Test port (%s): ", get_name()); TTCN_Logger::log_event("USB Test port (%s): ", get_name());
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
@ -333,7 +333,7 @@ void USB__PT_PROVIDER::outgoing_send(const USB__open__vid__pid& send_par)
libusb_device_handle *dh; libusb_device_handle *dh;
dh = libusb_open_device_with_vid_pid(mCtx, vendor_id, product_id); dh = libusb_open_device_with_vid_pid(mCtx, vendor_id, product_id);
if (!dh) { if (!dh) {
log("Error opening VID/PID %04x:%04x", vendor_id, product_id); log(TTCN_ERROR, "Error opening VID/PID %04x:%04x", vendor_id, product_id);
rc = -1; rc = -1;
} else { } else {
USB_Device *dev = new USB_Device(this, dh, device_hdl); USB_Device *dev = new USB_Device(this, dh, device_hdl);
@ -364,7 +364,7 @@ void USB__PT_PROVIDER::outgoing_send(const USB__open__path& send_par)
rc = libusb_get_device_list(mCtx, &list); rc = libusb_get_device_list(mCtx, &list);
if (rc < 0) { if (rc < 0) {
log("Error getting USB device list: %s\n", log(TTCN_ERROR, "Error getting USB device list: %s\n",
libusb_strerror((enum libusb_error) rc)); libusb_strerror((enum libusb_error) rc));
rc = -1; rc = -1;
goto out; goto out;
@ -376,17 +376,17 @@ void USB__PT_PROVIDER::outgoing_send(const USB__open__path& send_par)
libusb_device *dev = list[i]; libusb_device *dev = list[i];
rc = libusb_get_port_numbers(dev, ports, sizeof(ports)); rc = libusb_get_port_numbers(dev, ports, sizeof(ports));
stringify_usb_path(path, libusb_get_bus_number(dev), ports, rc); stringify_usb_path(path, libusb_get_bus_number(dev), ports, rc);
log("Found USB Device at path %s", path); log(TTCN_DEBUG, "Found USB Device at path %s", path);
if (!strcmp(in_path, path)) { if (!strcmp(in_path, path)) {
rc = libusb_open(dev, &dh); rc = libusb_open(dev, &dh);
if (rc < 0) { if (rc < 0) {
log("Error opening USB device %s: %s", path, log(TTCN_ERROR, "Error opening USB device %s: %s", path,
libusb_strerror((enum libusb_error) rc)); libusb_strerror((enum libusb_error) rc));
rc = -1; rc = -1;
} else { } else {
USB_Device *udev = new USB_Device(this, dh, device_hdl); USB_Device *udev = new USB_Device(this, dh, device_hdl);
mDevices.insert(std::make_pair(device_hdl, udev)); mDevices.insert(std::make_pair(device_hdl, udev));
log("Successfully opened USB device at path %s", path); log(TTCN_PORTEVENT, "Successfully opened USB device at path %s", path);
rc = 0; rc = 0;
} }
break; break;
@ -394,7 +394,7 @@ void USB__PT_PROVIDER::outgoing_send(const USB__open__path& send_par)
} }
if (!dh) { if (!dh) {
log("No matching USB device for %s", in_path); log(TTCN_ERROR, "No matching USB device for %s", in_path);
rc = -1; rc = -1;
} }
libusb_free_device_list(list, 1); libusb_free_device_list(list, 1);
@ -411,7 +411,7 @@ void USB__PT_PROVIDER::outgoing_send(const USB__set__configuration& send_par)
rc = libusb_set_configuration(dev->mHandle, send_par.configuration()); rc = libusb_set_configuration(dev->mHandle, send_par.configuration());
if (rc != 0) if (rc != 0)
log("Cannot set configuration %d", (int)send_par.configuration()); log(TTCN_ERROR, "Cannot set configuration %d", (int)send_par.configuration());
incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc)); incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc));
} }
@ -424,7 +424,7 @@ void USB__PT_PROVIDER::outgoing_send(const USB__claim__interface& send_par)
rc = libusb_claim_interface(dev->mHandle, interface_nr); rc = libusb_claim_interface(dev->mHandle, interface_nr);
if (rc != 0) if (rc != 0)
log("Cannot claim USB interface %d\n", interface_nr); log(TTCN_ERROR, "Cannot claim USB interface %d\n", interface_nr);
else { else {
USB_Interface *intf = new USB_Interface(*dev, interface_nr); USB_Interface *intf = new USB_Interface(*dev, interface_nr);
dev->mInterfaces.insert(std::make_pair(interface_nr, intf)); dev->mInterfaces.insert(std::make_pair(interface_nr, intf));
@ -440,7 +440,7 @@ void USB__PT_PROVIDER::outgoing_send(const USB__release__interface& send_par)
rc = libusb_release_interface(dev->mHandle, interface_nr); rc = libusb_release_interface(dev->mHandle, interface_nr);
if (rc != 0) if (rc != 0)
log("Cannot release USB interface %d\n", interface_nr); log(TTCN_ERROR, "Cannot release USB interface %d\n", interface_nr);
else else
dev->mInterfaces.erase(interface_nr); dev->mInterfaces.erase(interface_nr);
incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc)); incoming_message(USB__result(send_par.req__hdl(), send_par.device__hdl(), rc));

View File

@ -62,7 +62,7 @@ public:
~USB_Transfer(); ~USB_Transfer();
void submit(); void submit();
void complete(); void complete();
void log(const char *fmt, ...); void log(TTCN_Logger::Severity msg_severity, const char *fmt, ...);
/* the USB device through which the transfer is sent */ /* the USB device through which the transfer is sent */
const USB_Device *mDev; const USB_Device *mDev;
@ -110,7 +110,7 @@ protected:
virtual void incoming_message(const USB__descriptor& incoming_par) = 0; virtual void incoming_message(const USB__descriptor& incoming_par) = 0;
public: public:
void log(const char *fmt, ...); void log(TTCN_Logger::Severity msg_severity, const char *fmt, ...);
USB_Device *usbdev_by_hdl(unsigned int hdl); USB_Device *usbdev_by_hdl(unsigned int hdl);
void transfer_completed(USB_Transfer *t); void transfer_completed(USB_Transfer *t);
private: private: