Форум: "Начинающим";
Текущий архив: 2014.11.16;
Скачать: [xml.tar.bz2];
ВнизЧтение последних записанных строк из файла Найти похожие ветки
← →
goody © (2013-11-14 09:52) [0]Доброго времени суток всем.
Есть задача нужно читать новые строки из лог файла.
Примерно себе так представляю:
Следим за изменениями в каталоге файла.
Потом читаем новые строки и так далее...
Вопрос в том чтобы считывать только последние новые строки.
Как их определить ?
← →
Ega23 © (2013-11-14 10:12) [1]ужас какой.
> Как их определить ?
Вот у меня следующие строки:
А
А
А
А
А
Какие из них новые?
← →
goody © (2013-11-14 10:21) [2]Файл текстовый строки добавляются в конец файла, новы строки те которые были добавлены после последнего чтения файла.
← →
Ega23 © (2013-11-14 10:26) [3]
> Файл текстовый строки добавляются в конец файла, новы строки
> те которые были добавлены после последнего чтения файла.
Вот был файл
A
A
A
Я его прочитал.
Теперь файл стал такой:
A
A
A
A
A
Какие новые строки добавились?
← →
brother © (2013-11-14 10:28) [4]> Следим за изменениями в каталоге файла.
записываем где-то кол-во строк, что уже обработано...
> Как их определить ?
после выявления изменений - считаем кол-во сток, вычитаем, кол-во, что уже обработаны, остаток это новые строки, что не обрабатывали еще
← →
brother © (2013-11-14 10:29) [5]> Какие новые строки добавились?
я так понимаю, что 4 и 5...
← →
Ega23 © (2013-11-14 10:31) [6]
> я так понимаю, что 4 и 5...
Ну правильно. Как определить - ты уже тоже написал.
Я просто хотел, чтобы товарищ чуть-чуть подумал.
← →
brother © (2013-11-14 10:31) [7]да, что-то поспешил) да просто скучно)
← →
goody © (2013-11-14 10:36) [8]Спасибо.
← →
megavoid © (2013-11-14 13:04) [9]tail надо? так Unixutils же (unixtools) :)
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/tail.c
← →
KilkennyCat © (2013-11-14 20:30) [10]
> Ega23 © (14.11.13 10:31) [6]
>
> > я так понимаю, что 4 и 5...
>
>
> Ну правильно.
ну неправильно. 3 и 4.
← →
SergP © (2013-11-14 23:52) [11]запоминаем длину файла, какой она была до добавления строк.
После добавления новых строк смотрим файл с позиции, равной запомненной ранее длине файла.
← →
Inovet © (2013-11-15 00:24) [12]Если возможно держать файл открытым на чтение в расшаренном режиме, так ещё проще.
← →
DVM © (2013-11-15 10:15) [13]
> SergP © (14.11.13 23:52) [11]
> запоминаем длину файла, какой она была до добавления строк.
>
> После добавления новых строк смотрим файл с позиции, равной
> запомненной ранее длине файла.
причем нужно быть готовым к ситуации, когда длина уменьшилась, это скорее всего означает, что файл перезаписали и новыми строками считать все строки от начала.
← →
Ega23 © (2013-11-15 10:32) [14]Лог должен быть маленьким. Не больше мегабайта.
← →
DVM © (2013-11-15 11:44) [15]
> Ega23 © (15.11.13 10:32) [14]
> Лог должен быть маленьким. Не больше мегабайта.
Смотря какой уровень логгирования и интенсивность записи в лог. Слишком маленькое ограничение на размер лога тоже плохо - при большой нагрузке создается много файлов. В режиме отладки (да часто и в обычном) для многих высоконагруженных серверов большие логи с высокой детализацией - нормальное явление, иначе никак нельзя будет выяснить причину проблемы и ее предысторию.
← →
Ega23 © (2013-11-15 11:49) [16]
> Смотря какой уровень логгирования и интенсивность записи
> в лог. Слишком маленькое ограничение на размер лога тоже
> плохо - при большой нагрузке создается много файлов. В режиме
> отладки (да часто и в обычном) для многих высоконагруженных
> серверов большие логи с высокой детализацией - нормальное
> явление, иначе никак нельзя будет выяснить причину проблемы
> и ее предысторию.
Да это-то понятно. Просто в лог больше мегабайта как-то некузяво писать, тем более текстовый. Неудобно потом. Я обычно в таком случае их по времени создаю. Набрал больше какого-то определённого предела - закрыли файл, сохранили, начали новый с текущим временем в имени.
← →
DVM © (2013-11-15 13:08) [17]
> Просто в лог больше мегабайта как-то некузяво писать, тем
> более текстовый. Неудобно потом.
Я по 10 мб обычно ротацию делаю, вроде нормально, Notepad++ открывает такие логи довольно быстро, если надо глазами смотреть.
← →
Ega23 © (2013-11-15 13:23) [18]
> Я по 10 мб обычно ротацию делаю, вроде нормально, Notepad++
> открывает такие логи довольно быстро, если надо глазами смотреть.
Ну на том железе, которое у меня было, когда я такие логи активно писал, 10 метров было многовато.
Впрочем, не в метрах дело, а в сути. Лучше иметь много небольших файлов, чем один огроменный.
← →
Anatoly Podgoretsky © (2013-11-17 20:26) [19]Для меня один большой лучше кучи маленьких
← →
DevilDevil © (2013-11-19 09:58) [20]> SergP © (14.11.13 23:52) [11]
> запоминаем длину файла, какой она была до добавления строк.
>
> После добавления новых строк смотрим файл с позиции, равной
> запомненной ранее длине файла.
самый толковый ответ
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.11.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.002 c