I’m trying to replace an ad-hoc logging system with Python’s logging module. I’m using the logging system to output progress information for a long task on a single line so you can tail the log or watch it in a console. I’ve done this by having a flag on my logging function which suppresses the newline for that log message and build the line piece by piece.
All the logging is done from a single thread so there’s no serialisation issues.
Is it possible to do this with Python’s logging module? Is it a good idea?
Let’s start with your last question: No, I do not believe it’s a good idea.
IMO, it hurts the readability of the logfile in the long run.
I suggest sticking with the logging module and using the ‘-f’ option on your ‘tail’ command to watch the output from the console. You will probably end up using the FileHandler. Notice that the default argument for ‘delay’ is False meaning the output won’t be buffered.
If you really needed to suppress newlines, I would recommend creating your own Handler.