Merge "Fixed infinite recursion when using serial ports"
This commit is contained in:
commit
68a9ae57d4
@ -52,14 +52,13 @@ class SerialPortHandler(logging.StreamHandler):
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(SerialPortHandler, self).__init__(None)
|
super(SerialPortHandler, self).__init__(None)
|
||||||
self.stream = None
|
self.stream = self._open()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _open():
|
def _open():
|
||||||
serial_port = None
|
serial_port = None
|
||||||
if CONF.logging_serial_port_settings:
|
if CONF.logging_serial_port_settings:
|
||||||
settings = CONF.logging_serial_port_settings.split(',')
|
settings = CONF.logging_serial_port_settings.split(',')
|
||||||
try:
|
|
||||||
serial_port = serial.Serial(port=settings[0],
|
serial_port = serial.Serial(port=settings[0],
|
||||||
baudrate=int(settings[1]),
|
baudrate=int(settings[1]),
|
||||||
parity=settings[2],
|
parity=settings[2],
|
||||||
@ -67,8 +66,6 @@ class SerialPortHandler(logging.StreamHandler):
|
|||||||
if not serial_port.isOpen():
|
if not serial_port.isOpen():
|
||||||
serial_port.open()
|
serial_port.open()
|
||||||
serial_port.write = _safe_write(serial_port.write)
|
serial_port.write = _safe_write(serial_port.write)
|
||||||
except serial.SerialException as exc:
|
|
||||||
LOG.debug(exc)
|
|
||||||
return serial_port
|
return serial_port
|
||||||
|
|
||||||
def emit(self, record):
|
def emit(self, record):
|
||||||
@ -95,12 +92,15 @@ def setup(product_name):
|
|||||||
log.setup(CONF, product_name)
|
log.setup(CONF, product_name)
|
||||||
|
|
||||||
if CONF.logging_serial_port_settings:
|
if CONF.logging_serial_port_settings:
|
||||||
log_root = log.getLogger(product_name).logger
|
try:
|
||||||
|
|
||||||
serialportlog = SerialPortHandler()
|
serialportlog = SerialPortHandler()
|
||||||
|
log_root = log.getLogger(product_name).logger
|
||||||
log_root.addHandler(serialportlog)
|
log_root.addHandler(serialportlog)
|
||||||
|
|
||||||
datefmt = CONF.log_date_format
|
datefmt = CONF.log_date_format
|
||||||
serialportlog.setFormatter(
|
serialportlog.setFormatter(
|
||||||
formatters.ContextFormatter(project=product_name,
|
formatters.ContextFormatter(project=product_name,
|
||||||
datefmt=datefmt))
|
datefmt=datefmt))
|
||||||
|
except serial.SerialException:
|
||||||
|
LOG.warn("Serial port: {0} could not be opened".format(
|
||||||
|
CONF.logging_serial_port_settings))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user