我正在嘗試不斷更新和不斷更新的日誌文件。 事情是我有多個文件來聽。日誌由jboss實例分隔,我必須將它們一起使用,將它們插入到數據庫中。實時讀取多個文件?
我有一個很好的例子,如何從5419888這個問題中連續讀取文件,但是這段代碼只能按時讀取一個文件。我已經嘗試了下面的代碼來讀取它們,但它只是偵聽它在文件數組中找到的第一個文件。
我怎麼能多線程處理所有的文件在同一時間?
import time
from glob import glob
def follow(thefile):
thefile.seek(0,2)
while True:
line = thefile.readline()
if not line:
time.sleep(0.1)
continue
yield line
if __name__ == '__main__':
for log in glob("/logs/xxx/production/jboss/yyy*/xxx-production-zzzz*/xxx-production-zzzz*-xxx-Metrics.log"):
logfile = open(log, "r")
loglines = follow(logfile)
for line in loglines:
print line,
http://stackoverflow.com/documentation/python/544/multithreading#t=201607261842139282503 –
也許你想要的是爲每個文件創建一個線程,並將你定義的follow()函數設置爲目標函數。 – theVoid
@Rawing我試圖將這個應用於我的情況,但我無法很好地理解它。但是,謝謝。 – davis