Python Logging and printf()
rosuav at gmail.com
Fri Nov 21 12:55:15 CET 2014
On Fri, Nov 21, 2014 at 9:48 PM, Ganesh Pal <ganesh1pal at gmail.com> wrote:
> Please provide your input on the below questions.
> (1). How do i guarantee that all console messages will be logged into the
> logfile ?
> (2) I feel the need to retain few print(), how do I ensure the print()
> messages are also logged into the log file.
If you're using Python 3, you can shadow print() with your own
function. The logging functions don't have the same signature, so
you'd need to write a wrapper (or else stick to a strict policy of
"one argument to print() and it must be a string"), but it's certainly
But part of the point of the logging module is that it's not the same
as console messages: you can reduce log spam by changing the logging
level. So no, you don't have a guarantee that all console messages
will be logged to the log file. If you want that, I would suggest a
process-level wrapper - something which invokes a subprocess with
redirected stdout and/or stderr - or, at very least, a startup routine
that does the redirection (which will have similar effect, except that
it can't catch startup failure messages from Python itself).
More information about the Python-list