我在扭曲的反应堆下运行了3个进程:Orbited,WSGI(运行django)和Twisted自身。
我目前正在使用
log.startLogging(sys.stdout)
当所有日志都指向同一个地方时,洪水太多了。
来自WSGI的我的日志的一行是这样的:
2010-08-16 02:21:12-0500 [-] 127.0.0.1 - - [16/Aug/2010:07:21:11 +0000] "GET /statics/js/monitor_rooms.js HTTP/1.1" 304 - "http://localhost:11111/chat/monitor_rooms" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8"
时间基本上重复两次。我想我应该使用自己的格式化程序,但不幸的是我无法在twisted的文档中找到它(在那里没有任何记录)
答案 0 :(得分:11)
您可以使用system
twisted.python.log.msg
关键字参数来自定义消息。
假设你有:
log.msg("Service ready for eBusiness!", system="enterprise")
你会得到这样的记录输出:
2010-08-16 02:21:12-0500 [enterprise] Service ready for eBusiness!
然后,您可以让每项服务将system="wsgi/orbited/..."
添加到log.msg
和log.err
来电。
我上次与Twisted合作时发现this挖掘了源代码。
答案 1 :(得分:1)
嘿。我正在考虑这个问题。我想出的是一个单独的Twisted应用程序,它记录它通过套接字接收的消息。您可以配置Python日志记录以发送到套接字,并且可以配置Twisted的日志记录以发送到Python日志记录。因此,您可以将所有内容发送到单个进程(然后使用Python的日志记录将其记录到磁盘)。
我在http://www.acooke.org/cute/APythonLog0.html
处有一些概念代码的初步证明缺少的主要是指出哪个消息来自哪个来源会很好。不确定如何最好地添加它(一种方法是在三个不同的端口上运行服务,并为每个端口设置不同的前缀)。
PS Orbited是如何运作的?那是我的名单上的......