[Twisted-Python] logging in twisted based projects
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Thu Mar 14 08:57:30 MDT 2013
On 01:52 pm, stephen at thorne.id.au wrote:
>It's also perfectly fine to use python's logging module from within
>twisted, you don't have to use twisted.log, but you should be aware
>this
>will make your log files hard to correlate (between twistd.log and your
>own
>logfiles).
For posterity: within programs that *use* Twisted.
Please don't use it within code being contributed to Twisted itself. :)
Also, there is no such thing as "twisted.log". There is
"twisted.python.log".
Also, using stdlib logging doesn't necessarily force you to have two log
files. It sounds like Sergey already knows how to avoid this, since he
mentioned PythonLoggingObserver which bridges twisted.python.log to
stdlib logging.
Also, twisted.python.log doesn't prevent any filtering you might want to
do, it just doesn't support it the same way the stdlib logging module
does it. If you want to filter log messages, a good way to do it is
probably to write a log observer that implements your filtering logic
and then passes any unfiltered messages to another log observer. In
this way you can apply filtering regardless of what ultimate observer
you want to use.
For example:
def makeLevelFilter(level, observer):
def filter(event):
if event.get("level", 0) > level:
return observer(event)
return filter
obs = FileLogObserver(...)
addObserver(makeLevelFilter(7, obs.emit))
Jean-Paul
>
>On Thu, Mar 14, 2013 at 10:05 AM, Sergey Gerasimov <sergun at gmail.com>
>wrote:
>>I’m implementing some project based on twisted.****
>>
>>** **
>>
>>I would like to use some logging mechanism in my modules and see both
>>twisted generated log records and log records from my modules****
>>
>>and be able to filter log records by level and source (generated by
>>twisted, or subset of my modules).****
>>
>>** **
>>
>>What should I do in this case?****
>>
>>Log with python logging module in my code and send log records
>>generated
>>by twisted to PythonLoggingObserver? ****
>>
>>Or should I avoid using of python logging module and log only with
>>twisted
>>logging module? I didn’t find features like filtering logs in twisted
>>logging.****
>>
>>** **
>>
>>Am I right that twisted based log observer uses blocking i/o?
>>Example:****
>>
>>observer = log.FileLogObserver(sys.stdout) # sys.stdio.write used in
>>implementation****
>>
>>** **
>>
>>** **
>>
>>_______________________________________________
>>Twisted-Python mailing list
>>Twisted-Python at twistedmatrix.com
>>http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
More information about the Twisted-Python
mailing list