将相同的内容记录在两个扭曲的文件中

2022-04-18 00:00:00 python twisted

问题描述

我想知道有没有办法将相同的事情记录在两个Twisted文件中。 假设这是代码,现在我希望将指向"logs.log"的相同输出重定向到sys.stdout

if __name__ == "__main__":
    log.startLogging(open("logs.log", 'a'))
    log.startLogging(sys.stdout)

解决方案

如果您使用的是最新版本的Twisted,这绝对是可能的,而且比以往任何时候都更容易。

from sys import stdout
from twisted.logger import Logger, textFileLogObserver, globalLogBeginner

# start the global logger
logfile = open('log.log', 'a')
globalLogBeginner.beginLoggingTo([
    textFileLogObserver(stdout),
    textFileLogObserver(logfile)])

log = Logger()
log.info('hello world')
log.debug('hello world')

如果需要自定义消息,也可以implement you own logger。

相关文章