[Twisted-Python] Log output formatting (was Re: logging question)
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Thu Nov 17 18:26:48 EST 2011
On 09:10 pm, kevin.horn at gmail.com wrote:
>On Wed, Nov 16, 2011 at 2:27 PM, Don Dwiggins
><ddwiggins at advpubtech.com>wrote:
>>**
>>On 11/15/2011 8:57 AM, Christopher Armstrong wrote:
>>
>>If you pass a 'system' kwarg to log.msg then it will go in that field.
>>
>> log.msg("hi", system="stuff") results in <date> [stuff] hi
>>
>>
>>This triggered me to look further into what LogPublisher.msg does,
>>since
>>I've long wanted to customize the format of the output. I found what
>>I
>>wanted in
>>http://twistedmatrix.com/documents/current/api/twisted.python.log.ILogObserver.html:
>>
>>In msg(), the message gets added to the kwargs dictionary (along with
>>a
>>timestamp called 'time'), and that dict is passed to LogObserver.emit,
>>which uses textFromEventDict() to create what's actually output. This
>>dictionary has the following keys recognized by textFromEventDict:
>>
>> - message: A tuple of str containing messages to be logged.
>> - system: A str which indicates the "system" which is generating
>>this
>> event.
>> - isError: A bool indicating whether this event represents an
>>error.
>> - failure: A
>>failure.Failure<http://twistedmatrix.com/documents/current/api/twisted.python.failure.Failure.html>instance,
>>required
>> if the event is an error.
>> - why: Used as header of the traceback in case of errors.
>> - format: A string format used in place of message to customize the
>> event. The intent is for the observer to format a message by doing
>> something like format % eventDict.
>>
>>So, for example, you could do log.msg(format='....', foo='stuff',
>>bar='things')
>>
>>I suggest that this be added to the documentation string of the msg()
>>method and
>>http://twistedmatrix.com/documents/current/core/howto/logging.html.
`msg` doesn't really care about what you give it. It doesn't support
the `format` keyword in any particular way. It's the job of a log
observer to handle that sort of thing. So it could certainly be
documented, but don't mix things together that are unrelated.
Jean-Paul
More information about the Twisted-Python
mailing list