Broken logging with “%”#
Device log streams calls that included literal %
symbols but no args used to raise
an exception. For example, self.debug_stream("I want to log a %s symbol")
, or when
when logging an exception traceback that happened to include a format method. This is
fixed in PyTango 9.4.x, so if you had code that was doing additional escaping for the %
characters before logging, this can be removed.
If you do pass additional args to a logging function after the message string, and the number of args
doesn’t match the number of %
string formatting characters an exception will still be raised.
The updated methods are:
tango.Logger.debug()
tango.Logger.info()
tango.Logger.warn()
tango.Logger.error()
tango.Logger.fatal()
tango.Logger.log()
tango.Logger.log_unconditionally()
Where tango.Logger
is the type returned by tango.server.Device.get_logger()
.