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

Don Dwiggins ddwiggins at advpubtech.com
Wed Nov 16 15:27:44 EST 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 

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
    * |failure|: A |failure.Failure|
      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', 

I suggest that this be added to the documentation string of the msg() 
method and 


Don Dwiggins
Advanced Publishing Technology

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20111116/080000d9/attachment.htm 

More information about the Twisted-Python mailing list