S-Log, HLG, и почему их следует использовать в кино
Развитие камер привело к тому, что их матрицы теперь способны обеспечивать качество, как пленка 35 мм, или даже превосходящее его. Проблема в том, что существующие видеоформаты не поддерживают те объемы информации, которые фиксируются современными камерами. Результат — снижение динамического диапазона и более бедная цветовая гамма.
S-Log и HLG решают эту проблему.
Секрет S-Log
S-Log — кривая гамма-характеристики, которая призвана записать и передать как можно больше визуальной информации, зафиксированной матрицей камеры. Она была специально оптимизирована для цифровых кинокамер. Операторы, которые ведут съемку по существующему стандарту REC.709, вынуждены выбирать: детализация светлых участков изображения или темных. S-Log позволяет сохранить всю информацию. Так вы можете лучше контролировать окончательный результат во время постпроизводства.
Преимущества использования профиля S-Log заметны сразу.
- Более широкий тональный диапазон — Профиль S-Log особенно эффективен, если съемка ведется при ярком солнечном свете или в густой тени: он предотвращает потерю детализации в сильно осветленных и затемненных участках изображения.
- Расширенная цветовая гамма — Чем шире цветовая гамма, тем больше цветовой информации можно записать. В результате изображение получается более ярким и реалистичным.
- Больше контроля — При наличии большего количества информации во время редактирования вы можете воплотить в жизнь все творческие задумки.
При постпроизводстве кадров, снятых в формате S-Log, требуется обязательная цветокоррекция для отображения их на мониторах с поддержкой стандарта REC.709. Но это не лишний этап, а преимущество: у вас больше возможностей усовершенствовать готовый материал, чем если бы вы изначально записывали в формате REC.709.
Профили изображения Sony предназначены для упрощения цветокоррекции. Они хранятся в виде файлов 3D LUT (таблицы преобразования) и позволяют конвертировать в формат REC.709 материалы, снятые в S-Log. Это упрощает работу даже новичкам. Более опытные пользователи могут применять профили изображения в качестве базового инструмента цветокоррекции, а после вносить другие изменения.
Особенности HLG
Профиль Hybrid Log-Gamma или HLG позволяет мгновенно создавать материалы в формате HDR (расширенный динамический диапазон). Фильмы, снятые в режиме HLG, которым оснащены такие камеры, как α7R III, будут реалистичными без цветокоррекции. А поскольку HLG поддерживают все мониторы, видеоматериалы в таком формате можно просматривать на экранах со стандартным (SDR) и расширенным динамическим диапазоном (HDR).
Формат HLG особенно полезен тогда, когда материалы необходимо обрабатывать быстро. Например, если вы ведете прямую трансляцию мероприятия и хотите сразу же передавать видеоматериалы в онлайн-режиме, можете сократить или вообще не тратить время на редактирование.
Все больше вещательных компаний — от BBC до YouTube — предпочитают контент в формате HDR. Поэтому имеет смысл создавать видео самого высокого качества. Съемка в S-Log и HLG — отличный способ повысить производительность и взять курс на будущее. Поделитесь своими впечатлениями об использовании этих профилей в комментариях ниже.
» Экспонирование при съемке с гаммой S-Log2 на Sony A7s
Одной из отличительных особенностей камеры Sony A7s, является ее возможность вести съемку с различными гамма-кривыми и, в частности, с фирменной разработкой Sony — S-Log2.
Что такое гамма-кривая?
Гамма-кривая (далее гамма) — это степенная функция, используемая в работе всех бытовых камер. Гамма воздействует на изображение, позволяя уменьшить размер конечного файла
Ограничение стандартной гаммы
По своей функции гамма оказывает влияние на контраст изображения. Стандартная гамма, используемая на телевидении, ограничена динамическим диапазоном в 6-7 ступеней и, как следствие, имеет ограниченный диапазон контрастности.
При съемке высококонтрастной сцены со стандартной гаммой, самые яркие и темные участки отбрасываются. Тем не менее, при просмотре на экране, контраст отобразится правильно, поскольку камера фиксирует тот же диапазон контрастности, на который рассчитан телевизор/монитор.
Используемая в камере гамма, разработана так, чтобы соответствовать гамме телевизора/монитора. Иными словами, диапазоны контраста камеры и дисплея соответствуют друг другу, поэтому при выводе на экран изображение выглядит «нормально». В свою очередь, ограниченный ДД означает, что сильно яркие и темные объекты будут воспроизведены неточно, так как значения их яркостей выходят за границы ДД используемой гаммы.
Не смотря на то, что динамический диапазон Rec-709 не всегда может вместить диапазон снимаемой сцены, контраст на экране будет отображен верно, т.к. гамма камеры соответствует гамме экрана.
Передержка — типичный случай для гаммы с ограниченным ДД, такой, как Rec-709. Часто можно наблюдать, как яркие участки облаков приобретают плоский белый цвет, что говорит о наличии передержки. Темные области сцены наоборот — окажутся залиты черным цветом, с нечитаемыми деталями. В этом случае говорят о наличии недодержки. Тем не менее, в диапазоне между областями передержки и недодержки контраст выглядит естественно и натурально.
Типичное для Rec-709 ограничение ДД. Контраст воспринимается хорошо, но облака передержаны и смотрятся неестественно.
Логарифмическая гамма
Логарифмическая гамма (Log-гамма), например, Sony S-Log2, позволяет камере снять значительно больший ДД, чем стандартная телевизионная гамма
Поэтому прежде, чем демонстрировать материал на экране необходимо выполнить преобразование S-Log2 -> Rec-709.
Фиксированный диапазон камеры в работе со стандартной и логарифмической гаммой
В качестве единицы измерения видеосигнала используют, как правило, проценты. Для описания самого темного (черного) объекта принимают значение 0%, для описания самого яркого — 100% (или любое значение из диапазона 100-109%). Зачастую для записи самых ярких объектов большая часть современных видеокамер использует значение 109%. Здесь важно понимать, что независимо от настроек, диапазон камеры не меняется, он постоянный. Даже в случае изменения гаммы, будь-то Rec-709 или S-Log2 — не важно, — камера по-прежнему, буде ограничена диапазоном 0-109%. Из этого следует, что при съемке с логарифмической гаммой, сигнал значительно большего диапазона будет «сжат» в диапазон камеры, соответствующий, как правило, Rec-709.
Логарифмическая гамма позволяет «вместить» широкий диапазон сцены в стандартный диапазон камеры 0 -109%.
Съемка с гаммой S-Log2
Для съемки с логарифмической гаммой, Sony A7s используется предустановленный профиль (picture profile). Профили дают возможность осуществлять съемку с различными установками. Для съемки с гаммой S-Log2 используется профиль PP7 (Picture Profile 7), для которого по умолчанию уже выставлены S-Log2 и S-Gamut (более детальная информация о гамуте приведена в этой статье). Кроме этого,
Серая и белая карты
Прежде чем двигаться дальше, позвольте рассказать вам о двух полезных инструментах — белой и серой картах. Не отчаивайтесь, если у вас пока нет таковой. В любом случае, изложенная далее информация не будет лишней. Но в будущем я настоятельно рекомендую обзавестись картой, например,Lastolite EzyBalance.
Белая карта 90%
Белая карта 90% — карта, отражающая 90% падающего света. Такая карта по яркости очень похожа на лист отбеленной бумаги, используемой для печати. Некоторые производители придают бумаге еле заметный синий оттенок, для создания ощущения «бриллиантового белого». Забегая вперед отмечу, что взамен белой карты, можно будет использовать белый лист.
Серая карта
Серая карта 18% (также часто называемая «средним серым») — это карта, отражающая 18% света. Очевидно, что серая карта будет казаться намного темнее белой карты. Визуально яркость такой карты будет находиться между яркостью белого и черного цветов. Отсюда и пошло название «средний серый».
Средний серый для нас важен по двум причинам. Во-первых, яркость среднего серого примерно равна яркости большинства «средних» объектов. И во-вторых, его яркость попадает в середину диапазона, что делает его очень удобным опорным элементом при измерении экспозиции. С этой точки зрения использование белой карты менее удобно.
Экспонирование белого и серого тонов
Вернемся к Rec-709. Яркость освещенного листа белой бумаги находиться в районе 85%-95% диапазона экрана. Для объектов, яркость которых выше яркости листа бумаги, диапазона телевизионного экрана уже будет недостаточно. К примерам таких объектов можно отнести: облака, блики автомобиля, свет из окна или другого прямого источника. При съемке с гаммой S-Log2, белые и серые тона сдвигаются вниз. Вместо значений 85%-95% белый цвет будет записан на уровне 59%. Серый цвет — опустится еще ниже, — вместо значений 41%-42% (нормальный уровень для Rec-709), он окажется уже на 32%. Смещение вниз по диапазону дает возможность снять объекты с яркостью, намного превышающей яркость белых объектов, что было бы не возможно при съемке с обычной гаммой.
При съемке с гаммой S-Log2 белые и средние тона смещаются вниз. В результате этого изображение выглядит темнее, чем при съемке со стандартной гаммой.
Поэтому, при выводе на экран материала, снятого с гаммой S-Log2, яркость сцены будет ниже. Более того, пониженным окажется и контраст. Два этих обстоятельства и являются обратной стороной медали по «сжатию» диапазона.
При выводе на экран, контраст логарифмического материала выглядит пониженным, поскольку диапазон снятой сцены шире, чем у экрана.
Снижение яркости и контраста изображения — типичная ситуация при съемке с логарифмической гаммой. Именно так должно выглядеть изображение на обычном телевизоре/мониторе. Восстановить яркость и контраст изображения вы сможете позже, на этапе постпродакшна.
Правильно экспонированный кадр, снятый с гаммой S-Log2,может выглядеть темным и нерезким.
Материал S-Log2 можно рассматривать как цифровой негатив, а его «проявку» — как одни из ключевых этапов постпродакшна. Под «проявкой» обычно понимают, незначительное смещение вверх середины диапазона, смещение вниз светóв и, при необходимости, изменение яркости и насыщенности отдельных участков (более подробная информация о постпродакшне будет представлена во 2-й части).
S-Log2 с глубиной цвета 10 и 8 бит
Изначально гамма S-Log2 была разработана для использования в профессиональных кинокамерах, как, например, Sony F65. В камерах такого класса предусмотрена возможность съемки с глубиной цвета в 10 бит. Такая точность позволяет отобразить порядка 1000 градаций серого цвета.
Если говорить о Sony A7s, то данная камера осуществляет видеосъемку с глубиной цвета в 8 бит, что соответствует максимум 235 градациям серого. Как правило, передача и вывод на экран материала с глубиной цвета в 8 бит не вызывает сложностей, поскольку все операции выполняются в рамках 8-битной системы. Однако при грейдинге и цветокоррекции результат работы с 8- и 10-битным материалом имеет значительные отличия. Грейдинг изображения приводит к увеличению тонального разрешения, и глубина цвета 10 бит позволяет избежать появления многих артефактов. Фотографы, использующие форматы JPEG и raw, знают, насколько более гибок в обработке raw-файл 12 бит (или больше) по сравнению с 8-битным JPEG. Но фотографам также известно и то, что при условии умения настроить камеру и выставить сцену, 8 бит в формате JPEG может дать результат, не требующий существенных корректировок.
Вопреки распространенному мнению, грейдинг 8-битного материала не обязательно приведет к появлению бендинга на гладких поверхностях, за исключением крайних случаев. Бендинг – артефакт алгоритма кодирования (таких как макро блоки) и его появление характерно для кодеков сильного сжатия, как, например, AVCHD. В Sony A7s используется усовершенствованный кодек XAVC-S. XAVC-S — это современный кодек с битрейтом 50 Мбит/с, намного превосходящий по качеству AVCHD. Появления артефактов сжатия с кодеком XAVC-S наблюдается значительно реже.
При съемке с гаммой S-Log2 грейдинг материала требуется практически всегда. И учитывая, что съемка ведется с глубиной цвета в 8 бит, то вопрос получения верной экспозиции встает наиболее остро.
Получение верной экспозиции
Инженерами Sony была предоставлена таблица соответствия уровней сигнала для S-Log2 и Rec-709:
Как видно из таблицы, «правильная» экспозиция для S-Log2 находится немного ниже уровня, используемого для отображения классической гаммы Rec-709. Вот почему на обычном телевизоре/мониторе правильно экспонированный кадр с логарифмической гаммой всегда выглядит темнее. Поэтому при грейдинге материал с гаммой S-Log2 постоянно придется сдвигать вверх. Очевидно, что даже такая незначительная коррекция не может быть идеальной, особенно в случае с 8-битным кодеком. Поэтому я решил провести расширенный тест, чтобы определить оптимальный уровень экспозиции для A7s при съемке с гаммой S-Log2.
Корректная экспозиция
Ниже приведены кадры, снятые с гаммой S-Log2. Правильная экспозиция была определена при помощи серой карты и вейформ на внешнем мониторе, подключенному к камере по hdmi. Обратите внимание на «правильное» расположение среднего серого, который теперь располагается на уровне 32% диапазона камеры. Впоследствии, материал был преобразован в Rec-709 при помощи LUT (более подробно о Look Up Table см. во 2-й части). Для увеличения изображения, просто кликните по нему. Прошу прощения за тень от бельевой веревки на лице. К сожалению, я ее не заметил, когда делал тестовые снимки.
Корректно экспонированный кадр при съемке c S-Log2 на A7s.
На иллюстрации видно, насколько темным и неконтрастным выглядит оригинальный кадр (снятый в S-Log2) и как живо — приведенный к Rec-709. Указателями я отметил, где на гистограмме находятся средний серый и белый. Обратите внимание, как много места на гистограмме находится справа от границы белого. Это та область в S-Log2, где могут быть записаны сверх яркие или другими словами, передержанные участки. При правильной экспозиции материал S-Log2 имеет ДД в 6 ступеней выше среднего серого, и 8 ступеней — ниже.
Передержка (Pushing) при съемке с гаммой S-Log2
Если увеличить экспозицию выше значения, установленного камерой (такое значение будем считать базовым), то можно заменить ряд интересных особенностей.
Во-первых, с увеличением экспозиции уровень шума понижаться. Если быть более точным, то с увеличением экспозиции на 1 ступень (что соответствует 6дБ), уровень шума уменьшится в два раза. Во-вторых, увеличение экспозиции приведет к увеличению яркости всего изображения, что избавит от необходимости корректировки уровней на постпродакшне. В этом случае, запас экспозиции в области передержки уменьшится на одну ступень, а запас в области недодержки — увеличится.
Светá будут смещены вверх – в область наибольшего сжатия логарифмической кривой, что может привести к потере деталей в них. Цвет кожи и средние тона смещаются ближе к уровню, соответствующему Rec-709, что в дальнейшем потребует меньшей корректировки. Данное обстоятельство особенно важно для A7s с ее 8-битным кодеком. Поэтому я постарался предельно внимательно разобраться и выяснить, что же происходит с тоном кожи и ее детализацией при увеличении экспозиции.
Передержка в 1, 2 и 3 ступени
Ниже представлены иллюстрации с кадрами, снятых с передержкой в 1, 2 и 3 ступени (изображения кликабельны).
S-Log2 с передержкой в 1 ступень.
S-Log2 с передержкой в 2 ступени.
S-Log2 с передержкой в 3 ступени.
Детальный анализ кадров показывает, что при увеличении экспозиции на 1 ступень (относительно базовой экспозиции при съемке в S-Log2), наблюдается полезное снижение уровня шума. Не то что бы A7s сильно шумит, но изображение получается заметно чище.
Снимки A7s S-Log2, выполненные с различной экспозицией и с применением LUT.
Обратите внимание на черный ободок колорчекера (colour checker chart) и область в тени. Сравните кадры с базовой экспозицией и с передержкой в 3 ступени. Нетрудно заметить, что разница уровней шума в кадрах с форсированной экспозицией и базовой весьма существенна. При этом отличия между кадрами с передержкой в 2 и 3 ступени незначительны.
Не менее значимым оказалось влияние передержки и на уменьшение детализации. Это легко проследить на примере деревянной прищепки. Текстура дерева отчетливо видна в кадре с базовой экспозицией, но в кадре с передержкой в 3 ступени детали исчезли. Подобный эффект наблюдается и с текстурой кожи — в кадре с передержкой в 3 ступени детализация кожи заметно беднее.
Подведем итоги. Для средних тонов и оттенков кожи использование передержки в 1…2 ступени вполне допустимо. Однако это, с одной стороны приводит к снижению уровня шута, с другой — сокращает область запаса экспозиции. Передержка свыше 2 ступеней приводит к потере деталей в ярких областях и в оттенках кожи.
Использование передержки приводит к уменьшению области запаса экспозиции.
Учтя все особенности работы с 8-битной камерой, я рекомендую вести съемку с экспозицией в диапазоне от базового уровня и до передержки в 2 ступени. Старайтесь избегать передержки свыше 2 ступеней, так как в этом случае наблюдается потеря деталей в светáх и в ярких оттенках кожи. Съемку ярких сцен оптимально вести без передержки, чтобы обеспечить максимальный запас экспозиции. Если увеличение экспозиции не приводит к потере деталей, то съемку рекомендуется вести с передержкой в 2 ступени.
Определение правильной экспозиции
К счастью, как мы видели, S-Log2 вполне лоялен к незначительным промахам по экспозиции. Если белой или серой карты нет в наличии, вы можете использовать лист белой бумаги. В этом случае замер будет менее точным, но, как правило, достаточным для правильного экспонирования. Еще раз отмечу, что белая бумага немного ярче, чем точная белая карта 90%. В случае отсутствия белого листа, в качестве ориентира можно использовать кожу. Этот метод еще менее точен, но вполне достаточен для того, что бы попасть в нужную зону. В представленной ниже таблице приведены соответствия значений экспозиций для отдельных типов объектов. Для контроля экспозиции рекомендуется воспользоваться вейформ (Waveform), например, на внешнем мониторе.
Соответствия уровней экспозиции для Sony A7s. «Золотая середина» здесь находится на 2 ступени выше от базового значения экспозиции.
Несмотря на наличие в камере Зебры (Zebra Assist), данный инструмент окажется не таким полезным при съемке с S-Log2, поскольку нижняя граница работы Зебры начинается с 70%. Если в вашем мониторе отсутствует вейформ, вы можете прибегнуть к другим методам измерения. Вот некоторые из них:
Экспонометр. Вы можете воспользоваться обычным фотографическим экспонометром. Я настоятельно рекомендую проверить его калибровку прежде, чем использовать с камерой.
Визуальный контроль. Выставить экспозицию можно просто на глаз, глядя в видоискатель или экран. Однако сделать это правильно будет сложно, поскольку изображение выглядит достаточно плоским.
Встроенный в камеру замер. Встроенная в камеру система замера, как и у большинства современных камер, рассчитана для работы со средним серым. Для расчета средней яркости сцены по умолчанию камера использует многоточечный замер (multi point mode). Далее на основе полученных данных осуществляется установка базовой экспозиции.
Автоматическая экспозиция. Значение автоэкспозиции, полученное при съемке с гаммой S-Log2, как привило, всегда соответствует базовой экспозиции. Камера усреднит яркость сцены и автоматически выставит экспозицию из расчета, чтобы сцена соответствовала среднему серому на уровне 32% диапазона камеры. Так же как и в режимах P, A и S, доступна функция компенсации экспозиции. Как вы уже догадываетесь, я по-прежнему рекомендую увеличить экспозицию на 1-2 ступени. Дополнительный контроль экспозиции ведите по гистограмме.
Установка экспозиции вручную и встроенный замер
При переходе в ручной режим, в нижней части экрана появится индикатор «M.M.». На экране индикатор отображает числовые значения, но в видоискателе он принимает вид шкалы от -5 до +5. При съемке с S-Log2 значения индикатора ограничиваются диапазоном от -2 до +2.
Индикатор «M.M.» показывает, как сильно значение текущей экспозиции отличается от базовой. Символ «+» означает передержку, символ «-» — недодержку.
Экран A7S в режиме ручной экспозиции. Передержка зафиксирована двумя инструментами — «M.M.» и гистограммой.
На изображении видно, что индикатор «М.М.» принял значение «+0.3» (В видоискателе при этом, будет видна шкала с указателем, смещенным от 0 вправо на одно деление.). Значение «+0.3» говорит о том, что многоточечный замер камеры зафиксировал незначительную передержку, даже не смотря на использование серой карты и внешнего монитора с вейформ. Ошибка возникла, вероятно, из-за большого количества в кадре белого цвета: белой рубашки, белой карты, цветовой мишени с большим количеством ярких серых оттенков. На практике ошибка в +0.3 ступени не вызовет каких-либо проблем. Это показывает, как легко дезориентировать камеру в режиме многоточечного замера.
Рассматриваемая выше сцена — обычная ситуация, — не слишком яркая и не особо темная. Съемка сцены со снегом (в режиме многоточечного замера), например, почти наверняка приведет к недодержке, поскольку камера будет пытаться привести яркий снег к среднему серому. А съемка освещенного лица на темном фоне, скорее всего, вызовет повышение яркости фона и, как следствие, всего кадра.
Если необходимо точное измерение экспозиции, переведите камеру в режим точечного замера (spot metering), при котором вместо усреднения по точкам, камера измерит экспозицию в центре кадра.
Режим точечного замера в A7s.
Для повышения точности замера вы по-прежнему можете использовать серую карту. Просто направьте точку замера — небольшую окружность в центре кадра, —на серую карту и установки экспозицию так, чтобы индикатор «М.М.» принял значение «0.0». Эти установки и будет соответствовать правильной базовой экспозиции S-Log2. Чтобы получить передержку в 1 ступень, добейтесь показания на индикаторе «М.М.» значения «+1.0», для передержки в 2 ступени — значения «+2.0» (в случае передержки более чем на 2 ступени, значение индикатора будет мигать).
Точечный замер и получение базовой экспозиции по серой карте 18%. При съемке с гаммой S-Log2 индикатор «М.М.» должен показать значение «0.0»
Ложкой дегтя здесь оказалось то, что значения индикатора «М.М.» ограничивается диапазонам от -2.0 до +2.0 ступеней. Поэтому, удобство работы с серой картой удастся оценить лишь при условии, если значение передержки составляет не более 2 ступеней.
Использование белой карты
Если серой карты у вас не оказалось, то для настройки экспозиции вполне может подойти и белая карта. Известно, что белый свет на 2 ступени ярче серого. Поэтому для получения корректной базовой экспозиции при съемке с гаммой S-Log2, настройки камеры нужно задать так, что бы индикатор «М.М.» показал значение «+2.0».
Точечный замер и получение базовой экспозиции по белой карте 90%. При съемке с гаммойS-Log2 индикатор «М.М.» должен показать значение «+2.0».
После того, как базовая экспозиция выставлена, передержку можно получить, либо путем приоткрытия диафрагмы, либо увеличением выдержки. Увеличение выдержки в два раза, соответствует увеличению экспозиции на 1 ступень. Потому для получения передержки в 2 ступени, значение выдержки должно быть увеличено в 4 раза.
Как всегда, вы должны поминть о гистограмме. Исчезновение пиков белого цвета за правой границей гистограммы будет свидетельствовать о чрезмерной передержке. В случае возникновения подобной ситуации, вернитесь к значениям базовой экспозиции (напомню, что при работе с серой картой базовая экспозиция будет соответствовать значению «0.0» на индикаторе «М.М») и попробуйте получить передержку заново.
Резюме
Моя рекомендация касательно величины экспозиции состоит в использовании значений из диапазона от базовой экспозиции и до 2 ступеней передержки. Дальнейшее увеличение экспозиции не рекомендуется.
Как и в режимах работы P, A и S с многоточечным замером, значение автоэкспозиции будет соответствовать базовой экспозиции. Алгоритм усреднения задаст такое значение экспозиции, при котором яркость сцены будет соответствовать яркости среднего серого. Впоследствии, к полученной экспозиции может быть применена функция компенсации. Значение компенсации не рекомендуется устанавливать больше чем на 2 ступени.
В режиме ручной экспозиции индикатор «M.M.», расположенный в нижней части экрана, показывает, насколько значение текущей экспозиции отличается от базовой. Иными словами, значение «M.M. +2.0» информирует, что передержка относительно базовой экспозиции составляет 2 ступени. В режиме многоточечного замера (используется в камере по умолчанию) экспозиция будет рассчитана путем усреднения яркостей нескольких точек сцены.
В режиме точечного замера для корректного определения базовой экспозиции рекомендуется использовать серую карту 18%. Поместите карту в центе кадра и увеличьте экспозицию на 2 ступени.
Продолжение следует…
1)Определение гаммы дано в корне неверно. Автор, видимо, решил облегчить участь читателя, но сам, не ведая того, нанес еще больший вред. Знакомство с понятием гаммы можно начать с другой статьи автора – Understanding Gamma, Cinegamma, Hypergamma and S-Log, — или с одноименной страницы Wikipedia. — Прим. переводчика. 2)Передержка (переэкспонирование, форсирование экспозиции, Pushing-процесс) – процесс экспонирования, когда количество попавшего света настолько велико, что изображение выглядит либо слишком светлым, либо полностью залито белым цветом. — Прим. переводчика. 3)Недодержка (недоэкспонирование) – процесс обратный передержке. В этом случае изображение выглядит черным или настолько темным, что детали становятся неразличимы. — Прим. переводчика. 4)Более детальную информацию о гамме S-Log2 рекомендуется получить из официальных источников Sony, например, из этого документа. — Прим. переводчика 5)Как правило, операцию «проявки» называют грейдингом от англ. слова «grading». — Прим. переводчкика 7)От англ. banding — ступенчатый градиент, «полосатость». — Прим. переводчика. 8)Процесс так же известный, как pushing-процесс или форсирование экспозиции. — Прим. переводчика. 9)Данное утверждение весьма спорно, поскольку не описан сам метод измерения. По всей видимости, замер осуществлялся визуально и говорить об уменьшении уровня шума точно в два раза не верно. — Прим. переводчика. 10)Экспозиция определяется выдержкой (скорость срабатывания затвора), диафрагмой, числом ISO и, в случае использования, типом ND-фильтра. — Прим. переводчика.
Сводить по цвету картинку S-Log (C-Log) с обычным нейтральным профилем? Как сводить по цвету с другими камерами?
Как свести картинку по цвету, снятую в режиме log с картинкой с другого фотоаппарата, снятой в обычном нейтральном профиле со стандартной гаммой?
Обычно такой вопрос возникает, когда несколько людей снимают на разную технику, предварительно не согласовав между собой настройки камер. В результате, один снимал на Sony A7s в S-Log, другой снимал на Canon 5D MkIII в стандартном нейтральном профиле. Третий снимал все на 6D в CineStyle. А потом все это нужно привести к одному общему знаменателю на монтаже. И задача не из простых.
На YouTube полно роликов, как потратив битый час, сделать хоть сколько-нибудь похожими кадры с разных камер. Если вы влипли в такую ситуацию — выхода нет. Но впредь вы должны помнить:
1) Режим логарифмической гамма-кривой не только уменьшает контраст, но и вносит смещения по цвету. Например, на Sony A7s в S-log картинка валится в зеленый, на Canon C100 и С300 в C-log зеленый цвет становится бирюзовым. И при попытке откорректировать у вас возникают артефакты на однородных голубых или зеленых областях. Точно так же, всеми любимый Technicolor Cinestyle для зеркалок Canon после восстановления через LUT выглядит совершенно другим по цвету в сравнении с обычным нейтральным профилем. Цвет кожи, так называемый skintone также изменяется, поэтому…
2) НИКОГДА не снимайте в режимах log на РАЗНЫЕ камеры. Тем более, если вы снимаете событийное видео, вы потратите несколько дней только на то, чтобы кое-как привести их по цвету к общему знаменателю. Если у вас разные камеры — выставьте на всех обычный нейтральный заводской профиль с минимальным контрастом.
3) Как ни странно, при попытке выставить вручную одинаковое значение баланса белого на фотоаппаратах разных производителей — разница по цвету может быть больше, чем если камеры выставят его автоматически. Это связано и с разной цветопередачей объективов, а также с тем, что помимо цветовой температуры (которую можно точно задать в Кельвинах) есть еще параметр tint, который на разных камерах имеет свою дискретность, а выставить его «на глазок» по маленькому экрану невозможно. Поэтому оптимальным вариантом будет настроить камеры по белому листу бумаги и не менять значение в процессе съемки. Пусть даже температура цвета немного изменится (например, при опускающемся солнце), но на монтаже это легко будет поправить, причем одинаково для материала со всех камер.
4) Режим логарифмической гамма-кривой очень полезная вещь. Но использовать его можно ТОЛЬКО если вы снимаете одной камерой, либо ОДИНАКОВЫМИ камерами, или, хотя бы, камерами одного производителя. S-log даже для Sony A7s и A7sII немного отличается. Конечно в случае с Sony все это легко сводится даже с FS5 и FS7, но вы никогда не сведете идеально материал Sony и Canon. Проблему решает видео в RAW, но цена вопроса и процесс такой съемки подходит далеко не всем.
S-Log: открывая новые горизонты в видеосъемке | Съемка с использованием S-Log для цветокоррекции
S-Log даст вам настоящую свободу творчества
Запись с широким динамическим диапазоном и цветовой гаммой — это основа свободы творчества при постобработке. Съемка с S-Log позволит вам свободно творить, опираясь на эту основу. Узнайте, как осуществить задуманное с помощью универсального процесса с S-Log: от записи до цветокоррекции.
Цветокоррекция для передачи нужной атмосферы
В первую очередь посмотрите, как цветокоррекция может изменить внешний вид кадра.
Этот материал был отснят с использованием S-Log.
Технология Log изначально использовалась в оцифровке кинопленки, после чего ее стали применять и в цифровом кинематографе.
S-Log — это кривая гамма-характеристики, разработанная Sony, чтобы повысить эффективность работы датчиков изображения камер. Цветовая гамма на видео, отснятом с помощью S-Log, будет скорректирована, и вы сможете настроить комбинацию гаммы (в частности, гаммы S-Gamut) и кривой гаммы; чем шире гамма, тем более качественные изображения вы получите.
Теперь, когда 4K-видео с разрешением, превышающим HD в четыре раза, становятся все более популярными, мы, наконец, вступили в эпоху, в которой цифровая видеосъемка может превзойти пленочную.
Преимущества съемки с S-Log
Комбинация S-Log и S-Gamut обеспечит лучшее качество отснятого материала, более широкую цветовую гамму и динамический диапазон, а также улучшенную градацию оттенков по сравнению с традиционными технологиями съемки. Качество изображения и универсальная цветокоррекция позволят вам передать образы именно так, как вы и задумывали.
Даже объекты съемки, которые обычно выглядят недо- или переэкспонированными, можно передать гораздо более натурально с помощью точной градации цвета. S-Log позволяет снимать кадры, которые раньше необходимо было долго настраивать и редактировать: к примеру, кадры с контровым светом, кадры с людьми при ярком солнечном свете или изображения с небом и облаками.
* Обычный кадр с контровым светом* Тот же кадр с S-LogЧто такое лог (log) программы.
Решая различные компьютерные задачи, можно не раз столкнуться с таким понятием как лог (с англ. log). Лог какой-то программы. Давайте попробуем разобраться что это такое и для чего это нужно.
Log (с англ. журнал). У большинства программ, которые установлены на вашем компьютере, есть этот самый журнал.
Журнал — это специальный текстовый файл, в который программа может вносить какие-то записи.
Т.е. это такой же обычный файл, который мы с вами можем создать на компьютере. Таким же образом программа работая на компьютере, может создать этот файл и вносить туда программным образом какие-то текстовые пометки.
Зачем же программе вести какие-то записи, какой-то журнал?
Дело в том, что если мы с вами будем следить за человеком, который работает на компьютере, мы можем сказать, что этот человек делал в конкретный момент времени, какие программы он запускал, какие ошибки он совершал при работе на компьютере и.т.д.
Но, если мы говорим о компьютерной программе, здесь все не так ясно. Все действия, которые производит программа, они скрыты от взгляда обычного пользователя. Они обычно происходят с такой большой скоростью событий, что человеческий глаз просто не успеет за все этим уследить.
Для того, чтобы отслеживать состояние какой-то программы. Что делала программа в какой-то конкретный момент времени, какие при этом возникали ошибки, кто с этой программой взаимодействовал и др. вопросы. Все события, которые происходили с этой программой, эта программа может записывать в специальный журнал, так называемый лог-файл.
Лог файлов для программы может быть несколько. В зависимости от назначения может быть так называемый access_log — это журнал, где фиксируются все взаимодействия пользователей с этой программой, что они делали и.т.д.
В лог файле может множество записей. Каждая текстовая строка — это одно взаимодействие с программой.
В каждой записи содержится информация о том, что происходило с программой и когда это происходило.
Также можно часто встретить так называемый error_log — это лог тех ошибок, которые возникали при работе с программой. В этом логе можно увидеть код ошибки, которая произошла в программе, когда эта ошибка произошла, каким пользователем операционной системы эта ошибка была вызвана и.т.д.
Давайте подведем итог, что такое лог и зачем он нужен. Это текстовый файл, в который программа записывает какие-то события, которые с ней происходят. Благодаря этим событиям мы можем получить какую-то дополнительную информацию, что происходило с этой программой в какой-то определенный момент времени, получить отладочную информацию, чтобы легче устранить какую-то ошибку.
В общем лог — это бесценная информация, который может воспользоваться любой пользователь компьютера, чтобы узнать что и в какой момент времени происходило с программой.
Лог — это первоисточник, в который нужно заглядывать если ваша программа работает с каким-то ошибками и не так, как нужно.
Надеюсь, что стало понятнее что такое лог-файл и зачем он нужен и вы теперь будете использовать этот журнал в своей работе.
Собираем, парсим и отдаём логи с помощью Logstash / Habr
Приветствую.Так уж сложилось, что по долгу работы мне приходится много времени уделять логам. Это и участие в выработке правил и политик сбора/хранения/использования логов, это и разбор разных инцидентов и обнаружение аномалий. За сутки наши программы, сервисы и серверы генерируют ОЧЕНЬ большое количество логов. И потребность копания в логах растёт постоянно.
Мне довелось поработать с коммерческими лог-менеджмент продуктами типа ArcSight, RSA Envision, Q1 Labs. У этих продуктов есть как плюсы, так и минусы. Но в статье речь пойдёт не о них.
Речь будет о Logstash.
Что же такое Logstash? Зачем он нужен? Что он умеет?
Logstash — это орудие для сбора, фильтрации и нормализации логов. Оно является бесплатным и open source приложением. Тип лицензии Apache 2.0.
Первой моё знакомство с LS (Logstash) произошло более года назад, и с того времени я очень плотно на него подсел. Мне нравится его идея и возможности. Для меня Logstash — это подобие мясорубки. Неважно что заходит в неё, но после не сложных манипуляций, на выходе всегда красиво и понятно оформленная информация.
Формат конфигурационного файла Logstash’а прост и понятен. Он состоит из трёх частей:
input {
...
}
filter {
...
}
output {
...
}
Входных, фильтрующих и выходных (или выходящих?) блоков может быть любое количество. Всё зависит от ваших потребностей и возможностей железа.
Пустые строки и строки начинающиеся с # — Logstash игнорирует. Так что комментирование конфигурационных файлов не вызовет никаких проблем.
1. INPUT
Данный метод является входной точкой для логов. В нём определяет по каким каналам будут логи попадать в Logstash.В этой статье я попытаюсь вас ознакомит с основными типами, которые я использую — это file, tcp и udp.
1.1 fileПример конфигурации, для работы с локальными лог-файлами:
input {
file {
type => "some_access_log"
path => [ "/var/log/vs01/*.log", "/var/log/vs02/*.log" ]
exclude => [ "*.gz", "*.zip", "*.rar" ]
start_position => "end"
stat_interval => 1
discover_interval => 30
}
}
Построчное описание настроек:
type => "some_access_log"
тип/описание лога. При использовании нескольких входных блоков, удобно их разделять для последующих действий в filter или output.path => [ "/var/log/vs01/*.log", "/var/log/vs02/*.log" ]
указывается путь к лог-файлам, которые подлежат обработке. Путь должен быть абсолютным (/path/to/logs/), а не относительным (../../some/other/path/).exclude => [ "*.gz", "*.zip", "*.rar" ]
исключает из обработки файлы с соответствующими расширениями.start_position => "end"
ждёт появления новых сообщений в конце файла. При обработки уже имеющихся логов, можно выставить «beginning», тогда обработка логов будет происходить построчно с начала файлов.stat_interval => 1
как часто (в секундах) проверять файлы на изменения. При больших значения, уменьшится частота системных вызовов, но так же увеличится время чтения новых строк.discover_interval => 30
время (в секундах) через которое будет обновлён список обрабатываемых файлов указанных в path.1.2 tcpПример конфигурации, для работы с логами удалённых сервисов:
input {
tcp {
type => "webserver_prod"
data_timeout => 10
mode => "server"
host => "192.168.3.12"
port => 3337
}
}
Построчное описание настроек:
type => "webserver_prod"
тип/описание лога.data_timeout => 10
время (в секундах), по истечении которого не активное tcp соединение будет закрыто. Значение -1 — соединение всегда будет открыто.mode => "server"
host => "192.168.3.12"
port => 3337
в этом случае Logstash становится сервером, и начинает слушать на 192.168.3.12:3337. При установке mode => «client» Logstash будет присоединятся к удалённому ip:port для забора логов.1.3 udpДля udp настройки аналогичные tcp:
input {
udp {
type => "webserver_prod"
buffer_size => 4096
host => "192.168.3.12"
port => 3337
}
}
2. FILTER
В данном блоке настраиваются основные манипуляции с логами. Это может быть и разбивка по key=value, и удаление ненужных параметров, и замена имеющихся значений, и использование geoip или DNS запросов для ип-адресов или названий хостов.На первый взгляд применение фильтров может показаться сложным и нелогичным, но это не совсем так.
filter {
grok {
type => "some_access_log"
patterns_dir => "/path/to/patterns/"
pattern => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"
}
}
Построчное описание настроек:
type => "apache_access"
тип/описание лога. Здесь надо указать тот тип (type), который прописан в блоке input для которого будет происходить обработка.patterns_dir => "/path/to/patterns/"
путь к каталогу, содержащим шаблоны обработки логов. Все файлы находящиеся в указанной папке будут загружены Logstash, так что лишние файлы там не желательны.pattern => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"
указывается шаблон разборки логов. Шаблон можно использовать либо в конфигурационном файле, либо из файла шаблонов. Что бы не путаться, я для каждого формата логов создаю отдельный шаблонный файл.Подробнее про шаблоныС помощью grok фильтра можно структурировать большую часть логов — syslog, apache, nginx, mysql итд, записанных в определённом формате. Logstash имеет более 120 шаблонов готовых регулярных выражений (regex). Так что написание фильтров для обработки большинства логов не должно вызвать особого страха или недопонимания.
Формат шаблонов относительно простой — NAME PATTERN, то есть построчно указывается имя шаблона и ему соответствующее регулярное выражение. Пример:
NUMBER \d+
WORD \b\w+\b
USERID [a-zA-Z0-9_-]+
Можно использовать любой ранее созданный шаблон:
USER %{USERID}
Шаблоны можно так же и комбинировать:
CISCOMAC (?:(?:[A-Fa-f0-9]{4}\.){2}[A-Fa-f0-9]{4})
WINDOWSMAC (?:(?:[A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2})
MAC (?:%{CISCOMAC}|%{WINDOWSMAC})
Допустим формат логов у нас следующий:55.3.244.1 GET /index.html 15824 0.043
Среди готовых шаблонов, к счастью уже имеются некоторые регулярные выражения и не надо придумывать колёсное транспортное средство, приводимое в движение мускульной силой человека через ножные педали или через ручные рычаги (это я про велосипед если что).
С данным примером лога достаточно pattern записать в виде «%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}«, в этом случае все логи с данным форматом будут уже иметь некую логическую структуру.
После обработки наша строка будет выглядеть следующим образом:
client: 55.3.244.1
method: GET
request: /index.html
bytes: 15824
duration: 0.043
Со списком готовых grok-шаблонов можно познакомиться здесь.
2.2 mutateПример конфигурационного файла для изменения/удаления записей из логов:
filter {
mutate {
type => "apache_access"
remove => [ "client" ]
rename => [ "HOSTORIP", "client_ip" ]
gsub => [ "message", "\\/", "_" ]
add_field => [ "sample1", "from %{clientip}" ]
}
}
Построчное описание настроек:
type => "apache_access"
тип/описание лога. Указывается тип (type) логов с которыми будет происходить обработка.remove => [ "client" ]
удаление всех данных имеющих название поля client. Возможно указание нескольких названий полей.rename => [ "HOSTORIP", "client_ip" ]
переименование название поля HOSTORIP в client_ip.gsub => [ "message", "\\/", "_" ]
замена всех «/» на «_» в поле messages.add_field => [ "sample1", "from %{clientip}" ]
добавление нового поля «sample1» со значением «from %{clientip}». Допускается использование названий переменных.2.3 dateПример конфигурационого файла:
filter {
date {
type => "apache_access"
match => [ "timestamp", "MMM dd HH:mm:ss" ]
}
}
Построчное описание настроек:
type => "apache_access"
тип/описание лога. Указывается тип (type) логов с которыми будет происходить обработка.match => [ "timestamp", "MMM dd HH:mm:ss" ]
временная метка события. Важная настройка для дальнейшей возможности сортировки или выборки логов. Если в логах время указано в unix timestamp (squid), то следует использовать match => [ «timestamp», «UNIX» ]2.4 kvПример конфигурационного файла для обработки логов в формате key=value:
filter {
kv {
type => "custom_log"
value_split => "=:"
fields => ["reminder"]
field_split => "\t?&"
}
}
Построчное описание настроек:
type => "custom_log"
тип/описание лога. Указывается тип (type) логов с которыми будет происходить обработка.value_split => "=:"
использовать символы «=» и «:» для разделения ключа-значения.fields => ["reminder"]
название поля в котором искать ‘ключ=значение’. По умолчанию разбивка будет происходить для всей строки лога.field_split => "\t?&"
использовать символы «\t?&» для разделения ключей. \t — знак табулятора2.5 multilineПример конфигурационного файла для «склеивания» многострочных логов (например Java stack trace):
filter {
multiline {
type => "java_log"
pattern => "^\s"
what => "previous"
}
}
Построчное описание настроек:
type => "java_log"
тип/описание лога. Указывается тип (type) логов с которыми будет происходить обработка.pattern => "^\s"
регулярное выражениеwhat => "previous"
при соответствии шаблону «pattern» строка принадлежит предыдущей (previous) строке.3. OUTPUT
Название этого блока/метода говорит само за себя — в нём указываются настройки для исходящих сообщений. Аналогично предыдущим блокам, здесь можно указывать любое количество исходящих подблоков.3.1 stdoutПример конфигурационного файла для вывода логов в standard output:
output {
stdout {
type => "custom_log"
message => "IP - %{clientip}. Full message: %{@message}. End of line."
}
}
type => "custom_log"
тип/описание лога.message => "clIP - %{clientip}. Full message: %{@message}. End of line."
указывается формат исходящего сообщения. Допустимо использование переменных после grok-фильтрации.3.2 fileПример конфигурационого файла для записи логов в файл:
output {
file {
type => "custom_log"
flush_interval => 5
gzip=> true
path => "/var/log/custom/%{clientip}/%{type}"
message_format => "ip: %{clientip} request:%{requri}"
}
}
type => "custom_log"
тип/описание лога.flush_interval => 5
интервал записи исходящих сообщений. Значение 0 будет записывать каждое сообщение.gzip=> true
файл исходящих сообщений будет сжат Gzip.path => "/var/log/custom/%{clientip}/%{type}"
путь и название файла куда будут сохраняться исходящие сообщения. Можно использовать переменные. В данном примере, для каждого уникального IP адреса будет создана своя папка и сообщения будут записываться в файл соответствующий переменной %{type}.message_format => "ip: %{clientip} request:%{requri}"
формат исходящего сообщения.3.3 elasticsearchПример конфигурационного файла для записи логов в базу Elasticsearch:
output {
elasticsearch {
type => "custom_log"
cluster => "es_logs"
embedded => false
host => "192.168.1.1"
port => "19300"
index => "logs-%{+YYYY.MM.dd}"
}
}
type => "custom_log"
тип/описание лога.cluster => "es_logs"
название кластера указанного в cluster.name в настроечном файле Elasticsearch.embedded => false
указывает какую базу Elasticsearch использовать внутреннюю или стороннюю.port => "19300"
транспортный port Elasticsearch.host => "192.168.1.1"
IP адрес Elasticsearchindex => "logs-%{+YYYY.MM.dd}"
название индекса куда будут записываться логи.3.4 emailДанный плагин можно использовать для алертов. Минус в том, что любые изменения уведомлений (в принципе как и любых других настроек) требуют перезапуск logstash программы, но разработчик говорит, что возможно в будущем этого не придётся делать.
Пример конфигурационого файла:
output {
email {
type => "custom_log"
from => "[email protected]"
to => "[email protected]"
cc => "[email protected]"
subject => "Found '%{matchName}' Alert on %{@source_host}"
body => "Here is the event line %{@message}"
htmlbody => "<h3>%{matchName}</h3><br/><br/><h4>Full Event</h4><br/><br/><div align='center'>%{@message}</div>"
via => "sendmail"
options => [ "smtpIporHost", "smtp.gmail.com",
"port", "587",
"domain", "yourDomain",
"userName", "yourSMTPUsername",
"password", "PASS",
"starttls", "true",
"authenticationType", "plain",
"debug", "true"
]
match => [ "response errors", "response,501,,or,response,301",
"multiple response errors", "response,501,,and,response,301" ]
}
}
type => "custom_log"
тип/описание лога.from => "[email protected]"
to => "[email protected]"
cc => "[email protected]"
если у вас хватило сил дочитать до этих строк, значит вы можете сами определить смысл этих 3х настроек 🙂subject => "Found '%{matchName}' Alert on %{@source_host}"
тема письма уведомления. Можно использовать переменные. Например %{matchName} — название условия совпадения из настройки «match».body => "Here is the event line %{@message}"
htmlbody => "<h3>%{matchName}</h3><br/><br/><h4>Full Event</h4><br/><br/><div align='center'>%{@message}</div>"
тело письма.via => "sendmail"
способ отсылки письма. Возможен один вариант из двух — smtp или sendmail.options => ...
стандартные настройки почтовых параметров.match => [ "response errors", "response,501,,or,response,301",
"multiple response errors", "response,501,,and,response,301" ]
«response errors» — название алерта (записывается в переменную %{matchName}). «response,501,,or,response,301» — критерии срабатывания алертов. В данном примере если поле response содержит значение 501 или 301, то алерт считается сработавшим. Во второй строке используется логика AND, т.е. оба условия должны быть выполнены.4. Итого
Создаём файл habr.conf:
input {
tcp {
type => "habr"
port => "11111"
}
}
filter {
mutate {
type => "habr"
add_field => [ "habra_field", "Hello Habr" ]
}
}
output {
stdout {
type => "habr"
message => "%{habra_field}: %{@message}"
}
}
Запускаем Logstash:java -jar logstash-1.1.9-monolithic.jar agent -f ./habr.conf
Проверяем, что Logstash запущен:
# netstat -nat |grep 11111
Если порт 11111 присутствует, значит Logstash готов принимать логи.
В новом терминальном окне пишем:echo "Logs are cool!" | nc localhost 11111
Смотрим результат в окне где запущен Logstash. Если там появилось секретное послание, значит всё работает.
P.s.Последнюю версию Logstash можно скачать отсюда.
Спасибо за внимание,
Файл регистрации — Википедия
Материал из Википедии — свободной энциклопедии
Файл регистрации (протокол, журнал, лог[источник не указан 777 дней]; англ. log) — файл с записями о событиях в хронологическом порядке, простейшее средство обеспечения журналирования. Различают регистрацию внешних событий и протоколирование работы самой программы — источника записей (хотя часто всё записывается в единый файл).
Журналы сервера — специальные файлы, в которых протоколируются определённые действия пользователя или программы на сервере. Например, в журналы веб-сервера записывается информация, откуда пришёл тот либо иной посетитель, когда и сколько времени он провел на сайте, что там смотрел и скачивал, какой у него браузер и какой IP-адрес у его компьютера. Каждая запись в лог-файле соответствует определённому хиту, так как сервер может фиксировать именно запрос к одному из элементов сайта.
Проанализировав файлы регистрации, можно получить сводные данные активности пользователей, изучить закономерности поведения групп пользователей и оценить эффективность рекламной кампании. Часто используемые данные (статистика) могут записываться сразу в базу данных, а не только в файл регистрации.
Ведение протокола (протоколирование) — хронологическая запись с различной (настраиваемой) степенью детализации сведений о происходящих в системе событиях (ошибки, предупреждения, сообщения), обычно в файл. В абсолютном большинстве современных программ используются текстовые файлы протоколов (одно событие — одна строка), они легко генерируются программой и анализируются человеком. Как исключение, в интерактивных утилитах (командной строки) сообщения о событиях выводятся прямо на экран пользователю, однако и этот вывод при необходимости можно перенаправить в файл.
Исследование содержимого файла регистрации ошибок после возникновения неполадок часто позволяет понять их причины.
Наиболее подходящей парадигмой для решения задач ведения файлов регистрации считается аспектно-ориентированное программирование.
При активном использовании сервера пользователями или очень подробном журналировании или просто продолжительном времени работы программного обеспечения, в журнале становится очень много записей, что приводит к следующим затруднениям:
- файл регистрации потребляет значительные ресурсы хранения,
- большой файл регистрации становится тяжёлым для чтения и анализа.
Таким образом бывает необходима ротации журналов — усечение текущего файла регистрации, архивирование или удаление предыдущих накопленных данных:
- по временному промежутку (каждый час, каждый день, за последние сутки/неделю) в новый файл.
- по достижении определённого объёма или количества записей.
- циклический журнал — методика хранения какого-то определённого объёма или количества записей, при этом новые записи удаляют самые старые записи, на базе такой структуры как кольцевой буфер.
- Каждый новый запуск экземпляра ПО создает новый файл лога или переименовывает/откладывает предыдущий файл лога.
Если автоматическая ротация журнала не предусмотрена при разработке программного обеспечения, то эта задача ложится на системного администратора, которые автоматизируют её с помощью планировщиков, или специализированных утилит, как например logrotate.