1

我正在调用一个扭曲的python程序:

twistd -l twisted.log -y controller.py

根据我读过的所有文档:

  • l 应该将 STDERR 的输出定向到日志文件
  • 你应该守护它,并给我一个shell提示符

反而:

  • 日志文件保持不变
  • 所有调试内容都转到 stderr(来自“导入日志记录”)
  • 该应用程序不会守护进程(所以我必须保持登录状态)

有人可以指出我正确的方向吗?谢谢。


编辑:

tac 包含以下内容:

from twisted.internet import protocol, reactor  
from twisted.application import service  

application = service.Application('myapp daemon')  

dbUpdateService= DbUpdater_UpdateService()  
dbUpdateService.setServiceParent(application)  
dbUpdateService.startService()  

# repeat with 3x services  

reactor.run()
4

2 回答 2

1

看起来你使用不twistd正确。

  1. -y选项读取.tac文件,而不是.py文件。从技术上讲,a.tac也是 Python 源代码,但它有一些额外的规则,它不应该是一个模块。这里有一些解释。
  2. 该选项从而不是-l发送输出。twisted.python.loglogging
  3. 您的应用程序可能没有守护进程,因为您正在执行不应该执行的随机 crud controller.py(该文件在守护进程之前执行),但您没有附加controller.py,所以我真的不知道。

请就您将来实际在做什么提出更详细的问题。如果您的应用程序没有任何代码,以上内容大多是猜测。

于 2012-08-07T18:04:41.167 回答
1

这可能不会解决守护进程问题,但是关于您的日志文件,您使用的是 twisted.python.log 吗?将 log.msg 和 log.err 用于与日志相关的输出。查看http://twistedmatrix.com/documents/current/core/howto/logging.html

哦,如果你使用的是 twistd,你也不需要调用 log.startLogging。

于 2012-08-13T20:48:15.343 回答