[Twisted-Python] logging

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Fri Jun 14 15:47:56 MDT 2013


On 07:45 pm, radix at twistedmatrix.com wrote:
>On Fri, Jun 14, 2013 at 1:41 AM, Jamu Kakar <jkakar at kakar.ca> wrote:
>>Hi,
>>
>>On Thu, Jun 13, 2013 at 6:41 PM, Facundo Batista
>><facundobatista at gmail.com> wrote:
>>>Mmm... which is the problem with doing:
>>>
>>>log.msg("Foo happened. Relevant information includes: "
>>>              "bar=%s baz=%s boz=%s", bar, baz, boz)
>>>
>>>Is way more readable, and in the practice the code will just need to
>>>do something like:
>>
>>The example above could be written in a logfmt-compatible way as:
>>
>>   log.msg("message=Foo happened bar=%s baz=%s boz=%s", bar, baz, boz)
>>
>>This is as readable as what you have above while being a touch easier
>>to parse.  The main point that logs are data and should emitted in a
>>way that makes consuming them easy is a good one regardless of the
>>format you choose.  I do wonder if logfmt is unnecessary and if simply
>>dumping JSON objects would be just as good... logfmt is slightly
>>prettier but the JSON approach has the advantage of having a parser
>>available in basically every language anyone would ever care about.
>
>
>I think both of these should be avoided because they require the user
>to specify string interpolation themselves. I'd prefer to avoid that
>entirely, by default.
>
>log.msg("Foo happened**", bar=bar, baz=baz, boz=boz)
>
>This is better because:
>
>1. it keeps the data structured
>2. it is a lot less typing
>
>** I would prefer this part to be "foo", but I'll keep these
>discussions separate :)

I think that I agree with this, except I wonder if you could supply some 
more realistic examples here.  Let's say I have a somewhat complex 
50kloc application with a log event emitted around once every 10 lines.

After I use up "foo", "bar", "baz", and "quux" I start having to refer 
to the hacker dictionary.  This doesn't get me very close to the 5000 
event identifiers I'll need.  How does someone come up with this in the 
real world?

Jean-Paul




More information about the Twisted-Python mailing list