Файл журнала

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
(перенаправлено с «Лог-файл»)

Файл журнала (протокол, журнал; англ. log) — файл с записями о событиях в хронологическом порядке, простейшее средство обеспечения журналирования. Различают регистрацию внешних событий и протоколирование работы самой программы — источника записей (хотя часто всё записывается в единый файл).

Регистрация внешних событий

Журналы сервера — специальные файлы, в которых протоколируются определённые действия пользователя или программы на сервере. Например, в журналы веб-сервера записывается информация, откуда пришёл тот либо иной посетитель, когда и сколько времени он провел на сайте, что там смотрел и скачивал, какой у него браузер и какой IP-адрес у его компьютера. Каждая запись в лог-файле соответствует определённому хиту, так как сервер может фиксировать именно запрос к одному из элементов сайта.

Проанализировав файлы регистрации, можно получить сводные данные активности пользователей, изучить закономерности поведения групп пользователей и оценить эффективность рекламной кампании. Часто используемые данные (статистика) могут записываться сразу в базу данных, а не только в файл регистрации.

Протоколирование работы программы

Ведение протокола (протоколирование) — хронологическая запись с различной (настраиваемой) степенью детализации сведений о происходящих в системе событиях (ошибки, предупреждения, сообщения), обычно в файл. В абсолютном большинстве современных программ используются текстовые файлы протоколов (одно событие — одна строка), они легко генерируются программой и анализируются человеком. Как исключение, в интерактивных утилитах (командной строки) сообщения о событиях выводятся прямо на экран пользователю, однако и этот вывод при необходимости можно перенаправить в файл.

Исследование содержимого файла регистрации ошибок после возникновения неполадок часто позволяет понять их причины.

Наиболее подходящей парадигмой для решения задач ведения файлов регистрации считается аспектно-ориентированное программирование.

Ротация журналов

При активном использовании сервера пользователями или очень подробном журналировании или просто продолжительном времени работы программного обеспечения, в журнале становится очень много записей, что приводит к следующим затруднениям:

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

Таким образом бывает необходима ротация журналов — усечение текущего файла регистрации, архивирование или удаление предыдущих накопленных данных:

  • по временному промежутку (каждый час, каждый день, за последние сутки/неделю) в новый файл.
  • по достижении определённого объёма или количества записей.
  • циклический журнал — методика хранения какого-то определённого объёма или количества записей, при этом новые записи удаляют самые старые записи, на базе такой структуры как кольцевой буфер.
  • Каждый новый запуск экземпляра ПО создает новый файл лога или переименовывает/откладывает предыдущий файл лога.

Если автоматическая ротация журнала не предусмотрена при разработке программного обеспечения, то эта задача ложится на системных администраторов, которые автоматизируют её с помощью планировщиков, или специализированных утилит, как например logrotate.

См. также