Отслеживание файла журнала и поиск подстроки, в то время как сам файл журнала постоянно записывается - PullRequest
0 голосов
/ 23 апреля 2019

Наш редактор создает файл журнала, который я хотел бы отслеживать и находить определенные специальные строки. Мне нужно использовать поиск по подстроке, так как в строках журнала есть отметки даты и часов, и каждый раз они разные. Я бы также по соображениям производительности не начинал поиск с начала и начинал поиск с последней строки.

KEYSTRING1 = 'Successfully opened document'

x = False
min = 0

while x is False:
    max = sum(1 for line in open(LOGFILE))
    for number in range(min, max):
        logline = linecache.getline(LOGFILE, number).rstrip()
        print(logline)
        print('%i von %i' % (min, max))
        min += 1
        if logline.find(KEYSTRING1) is not -1:
            x = True
            print('Found')
            break

Поскольку время меняется и зависит от уровня ошибки, журнал отличается длинным.

<09:42:21> Successfully opened document levels/testlevel/

Вот пример того, как он иногда печатает пустые строки, даже если строки 34+ не пусты.

31 von 34
Using Project Folder NAME
32 von 34
Using Engine Folder NAME
33 von 34
Using Asset Folder NAME
34 von 61

35 von 61

36 von 61

37 von 61

38 von 61

Кажется, моя логика работает, когда редактор не работает. Это также выглядит так, как будто работает, когда я вручную изменяю строки. Но иногда возникают проблемы, когда приложение пишет в тот же момент, когда оно отслеживает.

Иногда это работает, иногда печатная строка пишет только пустые строки.

...