# 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.server.Device.debug_stream()`

> - `tango.server.Device.info_stream()`

> - `tango.server.Device.warn_stream()`

> - `tango.server.Device.error_stream()`

> - `tango.server.Device.fatal_stream()`

> - `tango.server.Device.fatal_stream()`

> - `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()`.