[Twisted-Python] Log output formatting (was Re: logging question)

Don Dwiggins ddwiggins at advpubtech.com
Wed Nov 16 13:27:44 MST 2011


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.


-- 

Don Dwiggins
Advanced Publishing Technology

-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20111116/080000d9/attachment-0001.html>


More information about the Twisted-Python mailing list