Я хочу добавить вкладку просмотра журнала на свой сайт. Вкладка должна печатать весь файл журнала, а после этого печатать только новые строки (например, tail -F
в Linux). Сторона клиента находится в HTML и Javascript, а серверная часть находится на Python.Хвост файла журнала
Вот моя функция хвост Python (я нашел его в Интернете):
@cherrypy.expose
def tail(self):
filename = '/opt/abc/logs/myLogFile.log'
f = subprocess.Popen(['tail','-F',filename],\
stdout=subprocess.PIPE,stderr=subprocess.PIPE)
p = select.poll()
p.register(f.stdout)
while True:
if p.poll(1):
print f.stdout.readline()
time.sleep(1)
Этот код действительно печати всего файла журнала. Однако каждый раз, когда я добавляю новые строки в файл, файл печатается с самого начала, вместо того, чтобы печатать новые строки.
Любые предложения по его устранению? Я довольно новичок в Python, поэтому я был бы признателен за любую помощь.
Можете ли вы обертка на вершине своего класса Logger (который может быть писать в лог-файл). Всякий раз, когда ваш объект регистратора получает строку для печати в файле журнала, обертка также передает линию в UI. –