команда tail, показывающая содержимое файла журнала не в реальном времени

У меня есть приложение C ++ (на Solaris 10), которое показывает вывод журнала на основе хронологических транзакций. Например, перед установлением соединения с сервером базы данных он выводит в stdout: «Соединение с БД» и после вызова для подключения, в случае успеха, говорит «Соединено с БД», в случае неудачи говорит «не удалось соединиться с БД». » и так далее.
Теперь, когда приложение запущено, вывод (stdout) перенаправляется в файл журнала, как показано ниже:

appl > app.log

И на другой сессии, чтобы увидеть, что происходит, я рассматриваю как:

tail -f app.log

tail -f Предполагается, что команда выполняется в бесконечном цикле, спит секунду, а затем пытается прочитать и скопировать строки из app.log и показать на консоли. Это помогает отслеживать, что происходит в app.log
В то время как я вижу, что порядок выходных данных поддерживается, я вижу, что иногда выходы объединяют много строк в виде чанка, а затем ожидают, и это происходит не в реальном времени, когда что-то происходит. Это из-за поведения сна и тяги tail -f? Пожалуйста, помогите мне понять, почему это не в режиме реального времени. Или есть какой-то другой способ почувствовать себя в реальном времени?

0

Решение

Попробуйте использовать команду watch для этого файла с интервалом в 5 секунд и посмотрите, имеет ли он то же поведение, что и tail. Если запись в файл app.log отсутствует в реальном времени, то аналогичным будет вывод в tail.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]