ui: be more cautious when creating log messages to avoid exceptions

This commit is contained in:
Peter F. Patel-Schneider 2023-11-18 10:04:57 -05:00
parent eb6bacaed1
commit 4669cad2e1
2 changed files with 8 additions and 6 deletions

View File

@ -478,9 +478,11 @@ class Device:
__nonzero__ = __bool__ __nonzero__ = __bool__
def __str__(self): def __str__(self):
return '<Device(%d,%s,%s,%s)>' % ( try:
self.number, self.wpid or self.product_id, self.name or self.codename or '?', self.serial name = self.name or self.codename or '?'
) except _base.NoSuchDevice:
name = 'name not available'
return '<Device(%d,%s,%s,%s)>' % (self.number, self.wpid or self.product_id, name, self.serial)
__repr__ = __str__ __repr__ = __str__

View File

@ -156,12 +156,12 @@ class ReceiverListener(_listener.EventsListener):
if _log.isEnabledFor(_INFO): if _log.isEnabledFor(_INFO):
if device.kind is None: if device.kind is None:
_log.info( _log.info(
'status_changed %s: %s, %s (%X) %s', device, 'present' if bool(device) else 'removed', device.status, 'status_changed %r: %s, %s (%X) %s', device, 'present' if bool(device) else 'removed', device.status,
alert, reason or '' alert, reason or ''
) )
else: else:
_log.info( _log.info(
'status_changed %s: %s %s, %s (%X) %s', device, 'paired' if bool(device) else 'unpaired', 'status_changed %r: %s %s, %s (%X) %s', device, 'paired' if bool(device) else 'unpaired',
'online' if device.online else 'offline', device.status, alert, reason or '' 'online' if device.online else 'offline', device.status, alert, reason or ''
) )
@ -253,7 +253,7 @@ class ReceiverListener(_listener.EventsListener):
# Apply settings every time the device connects # Apply settings every time the device connects
if n.sub_id == 0x41: if n.sub_id == 0x41:
if _log.isEnabledFor(_INFO): if _log.isEnabledFor(_INFO):
_log.info('connection %s for %s (%s)', n, dev, dev.kind) _log.info('connection %s for %r', n, dev)
# If there are saved configs, bring the device's settings up-to-date. # If there are saved configs, bring the device's settings up-to-date.
# They will be applied when the device is marked as online. # They will be applied when the device is marked as online.
configuration.attach_to(dev) configuration.attach_to(dev)