How can I suppress newline in Python logging module.
logging, python
Solution
Here is what I answered for a similar question:
The new line, `\n`, is inserted inside the `StreamHandler` class's `emit(...)` method.
If you're really set on fixing this behaviour, then here's an example of how I solved this by monkey patching the `emit(self, record)` method inside the logging.StreamHandler class.
A monkey patch is a way to extend or modify the run-time code of dynamic languages without altering the original source code. This process has also been termed duck punching.
Here is the custom implementation of `emit()` that omits line breaks:
def customEmit(self, record):
# Monkey patch Emit function to avoid new lines between records
try:
msg = self.format(record)
if not hasattr(types, "UnicodeType"): #if no unicode support...
self.stream.write(msg)
else:
try:
if getattr(self.stream, 'encoding', None) is not None:
self.stream.write(msg.encode(self.stream.encoding))
else:
self.stream.write(msg)
except UnicodeError:
self.stream.write(msg.encode("UTF-8"))
self.flush()
except (KeyboardInterrupt, SystemExit):
raise
except:
self.handleError(record)
Then you would make a custom logging class (in this case, subclassing from `TimedRotatingFileHandler`).
class SniffLogHandler(TimedRotatingFileHandler):
def __init__(self, filename, when, interval, backupCount=0,
encoding=None, delay=0, utc=0):
# Monkey patch 'emit' method
setattr(StreamHandler, StreamHandler.emit.__name__, customEmit)
TimedRotatingFileHandler.__init__(self, filename, when, interval,
backupCount, encoding, delay, utc)
Some people might argue that this type of solution is not Pythonic, or whatever. It might be so, so be careful.
Also, be aware that this will globally patch `SteamHandler.emit(...)`, so if you are using multiple logging classes, then this patch will affect the other logging classes as well!
Hope that helps.
Problem
I would like to cancel newline when I do for example log.info(“msg”). When we do “print” it just ``` print msg, ``` So I need something like coma for logging. I sow this question Suppress newline in Python logging module but can anybody give me reference or a simple example like “Hello world” Thanks!