Файл регистрации, протокол, журнал или лог (англ. log) — файл с записями о событиях в хронологическом порядке. Различают регистрацию внешних событий и протоколирование работы самой программы - источника записей (хотя часто всё записывается в единый файл).
Лог-файлы сервера — специальные файлы, в которых протоколируются определённые действия пользователя или программы на сервере. Например, в лог-файлы веб-сервера записывается информация, откуда пришёл тот либо иной посетитель, когда и сколько времени он провел на сайте, что там смотрел и скачивал, какой у него браузер и какой IP-адрес у его компьютера. Каждая запись в лог-файле соответствует определенному хиту, так как сервер может фиксировать именно запрос к одному из элементов сайта.
Проанализировав лог-файлы, можно получить сводные данные активности пользователей, изучить закономерности поведения групп пользователей и оценить эффективность рекламной кампании. Часто используемые данные (статистика) могут записываться сразу в базу данных, а не только в лог-файл. Например, так работают биллинговые системы учёта.
Ведение протокола, или протоколирование, — хронологическая запись с различной (настраиваемой) степенью детализации сведений о происходящих в системе событиях (ошибки, предупреждения, сообщения), обычно в файл. В абсолютном большинстве современных программ используются текстовые файлы протоколов (одно событие — одна строка), они легко генерируются программой и анализируются человеком. Как исключение, в интерактивных утилитах (командной строки) сообщения о событиях выводятся прямо на экран пользователю, однако и этот вывод при необходимости можно перенаправить в файл.
Исследование содержимого файла регистрации ошибок после возникновения неполадок часто позволяет понять их причины.
Наиболее подходящей парадигмой для решения задач ведения файлов регистрации считается аспектно-ориентированное программирование.
При активном использовании сервера пользователями или очень подробном журналировании или просто продолжительном времени работы ПО, в журнале становится очень много записей, что приводит к следующим затруденениям: файл лога потребляет много дискового пространства большой файл лога становится тяжелым для чтения и анализа.
Таким образом бывает необходима ротации логов - усечение текущего лога, архивирование или удаление предыдущих накопленных данных: по временному промежутку (каждый час, каждый день, за последние сутки/неделю) в новый файл. по достижении определенного объема или количества записей. циклический журнал - методика хранения какого-то определенного объема или количества записей, при этом новые записи удаляют самые старые записи, на базе такой структуры как кольцевой буфер. Каждый новый запуск экземпляра ПО создает новый файл лога или переименовывает/откладывает предыдущий файл лога.
Если автоматическая ротация журнала не предусмотрена при разработке ПО, то эта задача ложится на системного администратора, которые автоматизируют её с помощью планировщиков, или специализированых утилит, как например logrotate.