扭曲的记录

时间:2010-08-16 07:24:11

标签: python twisted

我在扭曲的反应堆下运行了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的文档中找到它(在那里没有任何记录)

  1. 从3个来源处理日志记录的最佳方法是什么?
  2. 我将什么kwargs传递给twisted.log中的哪个函数来设置我自己的格式化程序(startLogging不包含答案)
  3. 什么是比我建议的更好的解决方案? (我在设置记录器方面没有多少经验。)

2 个答案:

答案 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.msglog.err来电。

我上次与Twisted合作时发现this挖掘了源代码。

答案 1 :(得分:1)

嘿。我正在考虑这个问题。我想出的是一个单独的Twisted应用程序,它记录它通过套接字接收的消息。您可以配置Python日志记录以发送到套接字,并且可以配置Twisted的日志记录以发送到Python日志记录。因此,您可以将所有内容发送到单个进程(然后使用Python的日志记录将其记录到磁盘)。

我在http://www.acooke.org/cute/APythonLog0.html

处有一些概念代码的初步证明

缺少的主要是指出哪个消息来自哪个来源会很好。不确定如何最好地添加它(一种方法是在三个不同的端口上运行服务,并为每个端口设置不同的前缀)。

PS Orbited是如何运作的?那是我的名单上的......