Я не уверен, что вы подразумеваете под конфликтом. Я предполагаю, что это строка, разбитая пополам, потому что один процесс начал писать, а другой прервал ее и начал читать.
Вы можете использовать пакет pyinotify (0.9.6)
для просмотра интересующего вас файла журнала для событий модификации. Предполагая, что единственной модификацией является операция добавления, вы можете использовать код, подобный следующему:
import pyinotify
import functools
wm = pyinotify.WatchManager()
notifier = pyinotify.Notifier(wm, default_proc_fun=lambda _e: _e)
wm.add_watch('/home/user/somefile', pyinotify.IN_MODIFY)
def my_read_routine(notifier, fd):
while True:
content = fd.readline()
if not content:
break
print(content, end = '')
read_callback = functools.partial(my_read_routine, fd=open('somefile', 'r'))
notifier.loop(callback=read_callback)
Эта загадочная лямбда в default_proc_fun
является просто фиктивной заменой, используемой для удаления процедуры обработки по умолчанию, которая печатает события в стандартный вывод. Удалите его из списка аргументов, чтобы понять, что я имею в виду.