我在调用奴隶上的脚本后尝试读取日志文件时遇到了问题。
作为测试,我正在调用奴隶一个批处理文件“test.bat”,它回应“OK”。 然后,我想通过重写LogLineObserver类来使用Logobservers来读取stdio,但是从不调用应该获取输出的方法outLineReceived。
以下是我使用的两个类:
class MyObserver(LogLineObserver):
numTest=0
def outLineReceived(self,line):
if "OK" in line:
self.numTest+=1
class CustomStep(ShellCommand):
def __init__(self,**kwargs):
ShellCommand.__init__(self,workdir=WorkdironSlave,command=["call","test.bat"],**kwargs)
self.TestObserver=MyObserver()
self.addLogObserver('stdio',self.TestObserver)
我还尝试在我的Shell命令中使用日志文件,logfiles={"testlog":"test.log"}
(其中test.log是批处理文件在Slave目录中创建的包含“OK”的文件)。
然后我用self.addLogObserver('testlog',self.TestObserver)
调用我的Logobserver。
我还尝试将此构造函数添加到我的日志观察器中。 def init (个体经营): LogLineObserver .__的init(个体经营) 这是由自定义ShellCommand调用的,但仍然不会调用outLineReceived方法。
我使用的工厂也是这样定义的:
myFactory=BuildFactory()
myFactory.addStep(CustomStep())
这样做的最终目的是根据stdio文件中的内容调用新步骤。
我正在使用buildbot v0.8.7p1
为什么永远不会调用这个“outLineReceived”方法,或者我应该做些什么更改才能读入stdio或“test.log”文件?
由于