twistd.py 日志输出到 stdout 和文件

2 投票
1 回答
1770 浏览
提问于 2025-04-17 14:07

我正在使用 twistd.py 来运行我的应用程序,具体方式如下:

twistd -noy -l logfile.log tacfile.tac

不过,这样做的一个不太好的地方是,所有的输出现在都只会写入日志文件。这在调试过去的问题时是比较好的,但在调试当前的问题时就不太方便了。我希望能够兼顾这两者……我该如何让 twistd 同时把日志输出到标准输出(也就是屏幕上)和命令行中指定的文件里呢?

1 个回答

1

我会尝试:

twistd -noy -l - tacfile.tac | tee logfile.log

“-l -”这个选项让twistd把日志输出到标准输出,也就是屏幕上,tee命令可以把这些日志同时保存到文件里,并且也显示在屏幕上。在ubuntu系统中,tee命令是coreutils这个包里的。

<--- 下面的内容可以编辑 --->

如果你想要一些只和twisted相关的内容,可以在tac文件里添加以下代码:

from twisted.python import log, logfile

logFile = logfile.LogFile.fromFullPath('tacfile.log')
log.addObserver(log.FileLogObserver(logFile).emit)

然后用“-l -”来运行twistd。

撰写回答