Log s что это – Что такое S-Log (S-Log2/S-Log3)? | Sony RU

Содержание

» Экспонирование при съемке с гаммой S-Log2 на Sony A7s

Одной из отличительных особенностей камеры Sony A7s, является ее возможность вести съемку с различными гамма-кривыми и, в частности, с фирменной разработкой Sony — S-Log2.

Что такое гамма-кривая?

Гамма-кривая (далее гамма) — это степенная функция, используемая в работе всех бытовых камер. Гамма воздействует на изображение, позволяя уменьшить размер конечного файла. Во времена первых телевизионных приемников, принимаемый сигнал был настолько мал, что сразу транслировать его было невозможно. Поэтому, сигнал предварительно усиливался и подвергался гамма-коррекции. Далее, перед выводом на экран, к полученному сигналу применялась обратная гамма-коррекция, с целью вернуть диапазон яркостей, приемлемый для восприятия человеком. В настоящий момент стандартом для телевещания является документ «Recommendation BT-709» или просто «Rec-709». По сути, заложенная в нем гамма, основана на стандартах 60-летней давности. И, несмотря на то, что современные технологии сильно шагнули вперед, почти каждый современный телевизор/монитор выпускается с расчетом на Rec-709 или что-то подобное. Одной из характеристик гаммы является ее яркостной диапазон, известный также как динамический диапазон (далее ДД). Технический уровень современных камер позволяет вести съемку сцен с ДД, значительно превышающим диапазон, предусмотренный в Rec-709.

Ограничение стандартной гаммы

По своей функции гамма оказывает влияние на контраст изображения. Стандартная гамма, используемая на телевидении, ограничена динамическим диапазоном в 6-7 ступеней и, как следствие, имеет ограниченный диапазон контрастности.

При съемке высококонтрастной сцены со стандартной гаммой, самые яркие и темные участки отбрасываются. Тем не менее, при просмотре на экране, контраст отобразится правильно, поскольку камера фиксирует тот же диапазон контрастности, на который рассчитан телевизор/монитор.

Используемая в камере гамма, разработана так, чтобы соответствовать гамме телевизора/монитора. Иными словами, диапазоны контраста камеры и дисплея соответствуют друг другу, поэтому при выводе на экран изображение выглядит «нормально». В свою очередь, ограниченный ДД означает, что сильно яркие и темные объекты будут воспроизведены неточно, так как значения их яркостей выходят за границы ДД используемой гаммы.

Не смотря на то, что динамический диапазон Rec-709 не всегда может вместить диапазон снимаемой сцены, контраст на экране будет отображен верно, т.к. гамма камеры соответствует гамме экрана.

Передержка — типичный случай для гаммы с ограниченным ДД, такой, как Rec-709. Часто можно наблюдать, как яркие участки облаков приобретают плоский белый цвет, что говорит о наличии передержки. Темные области сцены наоборот — окажутся залиты черным цветом, с нечитаемыми деталями. В этом случае говорят о наличии недодержки. Тем не менее, в диапазоне между областями передержки и недодержки контраст выглядит естественно и натурально.

Типичное для Rec-709 ограничение ДД. Контраст воспринимается хорошо, но облака передержаны и смотрятся неестественно.

Логарифмическая гамма

Логарифмическая гамма (Log-гамма), например, Sony S-Log2, позволяет камере снять значительно больший ДД, чем стандартная телевизионная гамма. Однако прежде, чем приступить к съемке более широкого ДД, важно помнить, что способа корректно отобразить материал, снятый в S-Log2, на телевизоре/мониторе со стандартной гаммой Rec-709, не существует.

Поэтому прежде, чем демонстрировать материал на экране необходимо выполнить преобразование 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 (более детальная информация о гамуте приведена в этой статье). Кроме этого,

на камере должно быть установлено значение ISO 3200, которое предпочтительно использовать и для установки баланса белой точки (ББ). Использование любого другого значения ISO не позволит получить полные 14 ступеней ДД, доступные при съемке в S-Log2.

Серая и белая карты

Прежде чем двигаться дальше, позвольте рассказать вам о двух полезных инструментах — белой и серой картах. Не отчаивайтесь, если у вас пока нет таковой. В любом случае, изложенная далее информация не будет лишней. Но в будущем я настоятельно рекомендую обзавестись картой, например,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-фильтра. — Прим. переводчика.

 

www.cinemadslr.ru

Сводить по цвету картинку 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, но цена вопроса и процесс такой съемки подходит далеко не всем.

www.burn-media.ru

Использование предварительных настроек изображения с S-Log | Съемка с использованием S-Log для цветокоррекции

Использование предварительных настроек изображения с S-Log

Здесь в качестве примера используется камера α7S II (ILCE-7SM2).
При съемке с S-Log используйте предварительные настройки изображения PP7, PP8 или PP9.

Предварительная настройка PP7 сочетает в себе гамму S-Gamut и S-Log2, PP8 — S-Gamut3.cine/S-Log3, а PP9 — S-Gamut3/S-Log3. В данном случае выберите PP7 (S-Gamut/S-Log2) и не меняйте параметры предварительной настройки. Отличием этой настройки параметров изображения, предназначенной для последующей цветокоррекции, является широкая кинематографическая цветовая гамма.

Настройка камеры и типы параметров изображения

MENU → (Настройки съемки) → [Профиль изображ.] → нужная установка.

PP1:
Пример установки с помощью гаммы [Movie]
PP2:
Пример установки с помощью гаммы [Still]
PP3:
Пример установки естественного цветового тона с помощью гаммы [ITU709]
PP4:
Пример установки цветового тона в точном соответствии со стандартом ITU709
PP5:
Пример установки с помощью гаммы [Cine1]
PP6:
Пример установки с помощью гаммы [Cine2]
PP7:
Пример установки с помощью гаммы [S-Log2]
PP8:
Пример установки с помощью гаммы [S-Log3] и [S-Gamut3.Cine] в [Цветовой режим].
PP9:
Пример установки с помощью гаммы [S-Log3] и [S-Gamut3] в [Цветовой режим].

Почему видео с Log выглядит тусклым и недостаточно контрастным

Зачастую гамма, применяемая профессионалами при съемке видео, соответствует стандарту ITU-R BT.709 (Rec. 709), предназначенному для телевизоров с технологией HD. Иллюстрация представлена ниже.

На изображении цветовое пространство отражает диапазон человеческого зрения. Гамма Rec. 709 гораздо уже. На изображении легко увидеть, насколько более широкими являются гаммы S-Gamut, используемые в съемке с S-Log.

При просмотре на экране, предназначенном для Rec. 709, видео Log теряет контраст, поскольку экран не может отразить всей цветовой гаммы.

Гамма ITU-R BT.2020, представленная зеленым, может быть полностью воспроизведена на 4K-оборудовании. Это демонстрирует, насколько палитра в 4K шире палитры в HD.

Отображение видео S-Log2 на экране с гаммой Rec. 709

Простое воспроизведение цветов на экранах с гаммой Rec. 709 с помощью таблиц 3D LUT

Оптимальное отображение видео Log на экранах с гаммой Rec. 709 требует цветокоррекции и использования таблиц преобразования (LUT). Эта конверсия обеспечивает подготовку материала к отображению на экранах с гаммой Rec. 709.

В отличие от таблиц 1D LUT, которые в основном корректируют уровень освещенности, таблицы 3D LUT контролируют оттенок, насыщенность и яркость каждого из цветов системы RGB. Таблицы преобразования упрощают цветокоррекцию; без них конверсия видео S-Log на экраны с гаммой Rec. 709 была бы сложнее за счет процессов двухмерной корректировки кривых тона, оттенка, насыщенности и прочих параметров цвета.

Использование отображения данных гаммы и внешних мониторов

Чтобы упростить процесс проверки качества видео S-Log на экране с гаммой Rec. 709 во время съемки, используйте отображение данных гаммы для применения таблиц преобразования. Изображение в видоискателе и на экране монитора будет выглядеть так, будто вы и не используете S-Log. Таким образом, отображение данных гаммы позволяет выполнять точную настройку кадра, будь то проверка объектов съемки или настройка фокуса.

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

Сравнение использования таблицы преобразования на внешнем мониторе
Отображение без использования таблицыОтображение после преобразования таблицей

На этом видео представлены преимущества съемки с S-Log.

Нажмите значок (Настройки), чтобы найти субтитры на своем языке.

При съемке с S-Log вы можете выбрать параметр S-Log2 или S-Log3. От вашего выбора зависит воспроизведение цветов, поэтому выберите наиболее подходящую для текущей задачи опцию.

На этом видео представлены отличия в передаче цветов между S-Log2 и S-Log3.

Нажмите значок (Настройки), чтобы найти субтитры на своем языке.

support.d-imaging.sony.co.jp

Что такое лог (log) программы.

Решая различные компьютерные задачи, можно не раз столкнуться с таким понятием как лог (с англ. log). Лог какой-то программы. Давайте попробуем разобраться что это такое и для чего это нужно. 

Log (с англ. журнал). У большинства программ, которые установлены на вашем компьютере, есть этот самый журнал. 

Журнал - это специальный текстовый файл, в который программа может вносить какие-то записи. 

Т.е. это такой же обычный файл, который мы с вами можем создать на компьютере. Таким же образом программа работая на компьютере, может создать этот файл и вносить туда программным образом какие-то текстовые пометки.

Зачем же программе вести какие-то записи, какой-то журнал?

Дело в том, что если мы с вами будем следить за человеком, который работает на компьютере, мы можем сказать, что этот человек делал в конкретный момент времени, какие программы он запускал, какие ошибки он совершал при работе на компьютере и.т.д.

Но, если мы говорим о компьютерной программе, здесь все не так ясно. Все действия, которые производит программа, они скрыты от взгляда обычного пользователя. Они обычно происходят с такой большой скоростью событий, что человеческий глаз просто не успеет за все этим уследить.

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

Лог файлов для программы может быть несколько. В зависимости от назначения может быть так называемый access_log - это журнал, где фиксируются все взаимодействия пользователей с этой программой, что они делали и.т.д.

В лог файле может множество записей. Каждая текстовая строка - это одно взаимодействие с программой.

В каждой записи содержится информация о том, что происходило с программой и когда это происходило.

Также можно часто встретить так называемый error_log - это лог тех ошибок, которые возникали при работе с программой. В этом логе можно увидеть код ошибки, которая произошла в программе, когда эта ошибка произошла, каким пользователем операционной системы эта ошибка была вызвана и.т.д.

 Давайте подведем итог, что такое лог и зачем он нужен. Это текстовый файл, в который программа записывает какие-то события, которые с ней происходят. Благодаря этим событиям мы можем получить какую-то дополнительную информацию, что происходило с этой программой в какой-то определенный момент времени, получить отладочную информацию, чтобы легче устранить какую-то ошибку. 

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

Лог - это первоисточник, в который нужно заглядывать если ваша программа работает с каким-то ошибками и не так, как нужно. 

Надеюсь, что стало понятнее что такое лог-файл и зачем он нужен и вы теперь будете использовать этот журнал в своей работе. 

webkyrs.info

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

support.d-imaging.sony.co.jp

Что такое логарифм

Логарифмы всегда считались сложной темой в школьном курсе математики. Существует много разных определений логарифма, но большинство учебников почему-то используют самые сложные и неудачные из них.

Мы же определим логарифм просто и наглядно. Для этого составим таблицу:

Итак, перед нами степени двойки. Если взять число из нижней строчки, то можно легко найти степень, в которую придется возвести двойку, чтобы получилось это число. Например, чтобы получить 16, надо два возвести в четвертую степень. А чтобы получить 64, надо два возвести в шестую степень. Это видно из таблицы.

А теперь — собственно, определение логарифма:

Логарифм по основанию a от аргумента x — это степень, в которую надо возвести число a, чтобы получить число x.

Обозначение: logax = b, где a — основание, x — аргумент, b — собственно, чему равен логарифм.

Например, 23 = 8 ⇒ log2 8 = 3 (логарифм по основанию 2 от числа 8 равен трем, поскольку 23 = 8). С тем же успехом log2 64 = 6, поскольку 26 = 64.

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

212223242526
248163264
log2 2 = 1log2 4 = 2log2 8 = 3log2 16 = 4log2 32 = 5log2 64 = 6

К сожалению, далеко не все логарифмы считаются так легко. Например, попробуйте найти log2 5. Числа 5 нет в таблице, но логика подсказывает, что логарифм будет лежать где-то на отрезке [2; 3]. Потому что 22 < 5 < 23, а чем больше степень двойки, тем больше получится число.

Если взять калькулятор и посчитать, чему равны такие логарифмы, то получатся очень длинные числа. Взгляните сами:
log2 5 = 2,32192809...
log3 8 = 1,89278926...
log5 100 = 2,86135311...

Такие числа называются иррациональными: цифры после запятой можно писать до бесконечности, и они никогда не повторяются. Если логарифм получается иррациональным, его лучше так и оставить: log2 5, log3 8, log5 100.

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

Что такое логарифм

Перед нами — не что иное как определение логарифма. Вспомните: логарифм — это степень, в которую надо возвести основание, чтобы получить аргумент. Именно основание возводится в степень — на картинке оно выделено красным. Получается, что основание всегда находится внизу! Это замечательное правило я рассказываю своим ученикам на первом же занятии — и никакой путаницы не возникает.

Как считать логарифмы

С определением разобрались — осталось научиться считать логарифмы, т.е. избавляться от знака «log». Для начала отметим, что из определения следует два важных факта:

  1. Аргумент и основание всегда должны быть больше нуля. Это следует из определения степени рациональным показателем, к которому сводится определение логарифма.
  2. Основание должно быть отличным от единицы, поскольку единица в любой степени все равно остается единицей. Из-за этого вопрос «в какую степень надо возвести единицу, чтобы получить двойку» лишен смысла. Нет такой степени!

Такие ограничения называются областью допустимых значений (ОДЗ). Получается, что ОДЗ логарифма выглядит так: logax = b ⇒ x > 0, a > 0, a ≠ 1.

Заметьте, что никаких ограничений на число b (значение логарифма) не накладывается. Например, логарифм вполне может быть отрицательным: log2 0,5 = −1, т.к. 0,5 = 2−1.

Впрочем, сейчас мы рассматриваем лишь числовые выражения, где знать ОДЗ логарифма не требуется. Все ограничения уже учтены составителями задач. Но когда пойдут логарифмические уравнения и неравенства, требования ОДЗ станут обязательными. Ведь в основании и аргументе могут стоять весьма неслабые конструкции, которые совсем необязательно соответствуют приведенным выше ограничениям.

Теперь рассмотрим общую схему вычисления логарифмов. Она состоит из трех шагов:

  1. Представить основание a и аргумент x в виде степени с минимально возможным основанием, большим единицы. Попутно лучше избавиться от десятичных дробей;
  2. Решить относительно переменной b уравнение: x = ab;
  3. Полученное число b будет ответом.

Вот и все! Если логарифм окажется иррациональным, это будет видно уже на первом шаге. Требование, чтобы основание было больше единицы, весьма актуально: это снижает вероятность ошибки и значительно упрощает выкладки. Аналогично с десятичными дробями: если сразу перевести их в обычные, ошибок будет в разы меньше.

Посмотрим, как работает эта схема на конкретных примерах:

Задача. Вычислите логарифм: log5 25

  1. Представим основание и аргумент как степень пятерки: 5 = 51; 25 = 52;
  2. Составим и решим уравнение:
    log5 25 = b ⇒ (51)b = 52 ⇒ 5b = 52 ⇒ b = 2;
  3. Получили ответ: 2.

Задача. Вычислите логарифм:

Пример логарифма
  1. Представим основание и аргумент как степень тройки: 3 = 31; 1/81 = 81−1 = (34)−1 = 3−4;
  2. Составим и решим уравнение: Как считать логарифм
  3. Получили ответ: −4.

Задача. Вычислите логарифм: log4 64

  1. Представим основание и аргумент как степень двойки: 4 = 22; 64 = 26;
  2. Составим и решим уравнение:
    log4 64 = b ⇒ (22)b = 26 ⇒ 22b = 26 ⇒ 2b = 6 ⇒ b = 3;
  3. Получили ответ: 3.

Задача. Вычислите логарифм: log16 1

  1. Представим основание и аргумент как степень двойки: 16 = 24; 1 = 20;
  2. Составим и решим уравнение:
    log16 1 = b ⇒ (24)b = 20 ⇒ 24b = 20 ⇒ 4b = 0 ⇒ b = 0;
  3. Получили ответ: 0.

Задача. Вычислите логарифм: log7 14

  1. Представим основание и аргумент как степень семерки: 7 = 71; 14 в виде степени семерки не представляется, поскольку 71 < 14 < 72;
  2. Из предыдущего пункта следует, что логарифм не считается;
  3. Ответ — без изменений: log7 14.

Небольшое замечание к последнему примеру. Как убедиться, что число не является точной степенью другого числа? Очень просто — достаточно разложить его на простые множители. И если такие множители нельзя собрать в степени с одинаковыми показателями, то и исходное число не является точной степенью.

Задача. Выясните, являются ли точными степенями числа: 8; 48; 81; 35; 14.

8 = 2 · 2 · 2 = 23 — точная степень, т.к. множитель всего один;
48 = 6 · 8 = 3 · 2 · 2 · 2 · 2 = 3 · 24 — не является точной степенью, поскольку есть два множителя: 3 и 2;
81 = 9 · 9 = 3 · 3 · 3 · 3 = 34 — точная степень;
35 = 7 · 5 — снова не является точной степенью;
14 = 7 · 2 — опять не точная степень;

Заметим также, что сами простые числа всегда являются точными степенями самих себя.

Десятичный логарифм

Некоторые логарифмы встречаются настолько часто, что имеют специальное название и обозначение.

Десятичный логарифм от аргумента x — это логарифм по основанию 10, т.е. степень, в которую надо возвести число 10, чтобы получить число x. Обозначение: lg x.

Например, lg 10 = 1; lg 100 = 2; lg 1000 = 3 — и т.д.

Отныне, когда в учебнике встречается фраза типа «Найдите lg 0,01», знайте: это не опечатка. Это десятичный логарифм. Впрочем, если вам непривычно такое обозначение, его всегда можно переписать:
lg x = log10x

Все, что верно для обычных логарифмов, верно и для десятичных.

Натуральный логарифм

Существует еще один логарифм, который имеет собственное обозначение. В некотором смысле, он даже более важен, чем десятичный. Речь идет о натуральном логарифме.

Натуральный логарифм от аргумента x — это логарифм по основанию e, т.е. степень, в которую надо возвести число e, чтобы получить число x. Обозначение: ln x.

Многие спросят: что еще за число e? Это иррациональное число, его точное значение найти и записать невозможно. Приведу лишь первые его цифры:
e = 2,718281828459...

Не будем углубляться, что это за число и зачем нужно. Просто помните, что e — основание натурального логарифма:
ln x = logex

Таким образом, ln e = 1; ln e2 = 2; ln e16 = 16 — и т.д. С другой стороны, ln 2 — иррациональное число. Вообще, натуральный логарифм любого рационального числа иррационален. Кроме, разумеется, единицы: ln 1 = 0.

Для натуральных логарифмов справедливы все правила, которые верны для обычных логарифмов.

Смотрите также:

  1. Тест к параграфу «Что такое логарифм» (легкий) Как считать логарифм
  2. Тест к уроку «Что такое логарифм» (средний) Как считать логарифм
  3. Десятичные дроби Как считать логарифм
  4. Задачи B12, сводящиеся к линейным уравнениям Как считать логарифм
  5. Метод коэффициентов, часть 2 Как считать логарифм
  6. Тригонометрия в задаче B15: решаем без производных Как считать логарифм

www.berdov.com

Как правильно писать логи (?) / Habr

Тема может и банальная, но когда программа начинает работать как то не так, и вообще вести себя очень странно, часто приходится читать логи. И много логов, особенно если нет возможности отлаживать программу и не получается воспроизвести ошибку. Наверно каждый выработал для себя какие то правила, что, как и когда логировать. Ниже я хочу рассмотреть несколько правил записи сообщений в лог, а также будет небольшое сравнение библиотек логирования для языков php, ruby и go. Сборщики логов и системы доставки не будут рассматриваться сознательно (их обсуждали уже много раз).

Есть такая linux утилита, а также по совместительству сетевой протокол под названием syslog. И есть целый набор RFC посвящённый syslog, один из них описывает уровни логирования https://en.wikipedia.org/wiki/Syslog#Severity_level (https://tools.ietf.org/html/rfc5424). Согласно rfc 5424 для syslog определено 8 уровней логирования, для которых также дается краткое описание. Данные уровни логирования были переняты многими популярными логерами для разных языков программирования. Например, http://www.php-fig.org/psr/psr-3/ определяет те же самые 8 уровней логирования, а стандартный Ruby logger использует немного сокращённый набор из 5 уровней. Несмотря на формальное указание в каких случаях должен быть использован тот или иной уровень логов, зачастую используется комбинация вроде debug/info/fatal — первый для логирования во время разработки и тестирования, второй и третий в расчёте на продакшен. Потом в какой то момент на продакшене начинает происходить что то не понятное и вдруг оказывается, что info логов не хватает — бежим включать debug. И если они не сильно нагружают систему, то зачастую так и остаются включенными в продакшен окружении. По факту остаётся два сценария, когда нужно иметь логи:
  • что-то происходит и надо знать что
  • что-то сломалось и нужно дополнительно активировать триггер

По триггеру может происходить: уведомление об ошибке на email, аварийное завершение или перезапуск программы или другие типичные сценарии.

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

  • Fatal — вывод в лог и немедленный выход в ОС.
  • Panic — вывод в лог и возбуждение «паники» (аналог исключения)
  • Print — просто выводит сообщение в лог

Запутаться, что использовать в конкретной ситуации уже практически невозможно. Но сообщения в таком сильно усеченном виде сложно анализировать, а также настраивать системы оповещения, типично реагирующих на какой нибудь Alert\Fatal\Error в тексте лога.

Я часто при написании программы с нуля повсеместно использую debug уровень для логирования с расчётом, что на продакшене будет выставлен уровень логирования info и тем самым сократится зашумлённость сообщениями. Но в таком подходе часто возникают ситуация, что логов вдруг становится не хватать. Трудно угадать, какая информация понадобиться, что бы отловить редкий баг. Возможно рационально всегда использовать по умолчанию уровень info, а в обработчиках ошибок уровень error и выше. Но если у вас сотни и больше сообщений лога в секунду, то тогда наверно есть смысл тонкой настройки между info/debug. В таких ситуациях уже имеет смысл использовать специализированные решения что бы не просаживать производительность.

Есть ещё тонкий момент, когда вы пишите что то вроде logger.debug(entity.values) — то при выставленном уровне логирования выше debug содержимое entity.values не попадёт в лог, но оно каждый раз будет вычисляться отъедая ресурсы. В Ruby логеру можно передать вместо строки сообщения блок кода: Logger.debug { entity.values }. В таком случае вычисления будут происходить только при выставленном соответствующем уровне лога. В языке Go для реализации ленивого вычисления в логер можно передать объект поддерживающий интерфейс Stringer.

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

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

[system info] + [message] + [context]

Где:
  • system info: метка времени, ид процесса, ид потока и другая служебная информация
  • message: текст сообщения
  • context: любая дополнительная информация, контекст может быть общим для сообщений в рамках какой то операции.

Для того, чтобы связать пары запрос\ответ часто используется http заголовок X-Request-ID. Такой заголовок может сгенерировать клиент, или он может быть сгенерирован на стороне сервера. Добавив его в контекст каждой строчки лога появится возможность лёгким движением руки найти все сообщения возникшие в рамках выполнения конкретного запроса. А в случае распределенных систем, заголовок можно передавать дальше по цепочке сетевых вызовов.

Но с единым контекстом в рамках запроса возникает проблема с различными ORM, http клиентами или другими сервисами\библиотеками, которые живут своей жизнью. И ещё хорошо, если они предоставляют возможность переопределить свой стандартный логер хотя бы глобально, а вот выставить контекст для логера в рамках запроса зачастую не реально. Данная проблема в основном актуальна для многопоточной обработки, когда один процесс обслуживает множество запросов. Но например в фрэймворке Rails имеется очень тесная интеграция между всеми компонентами и запросы ActiveRecord могут писаться в лог вместе с глобальным контекстом для текущего сетевого запроса. А в языке Go некоторые библиотеки логирования позволяют динамически создавать новый объект логера с нужным контекстом, выглядит это примерно так:

reqLog := log.WithField("requestID", requestID)

После этого такой экземпляр логера можно передать как зависимость в другие объекты. Но отсутствие стандартизированного интерфейса логирования (например как psr-3 в php) провоцирует создателей библиотек хардкодить малосовместимые реализации логеров. Поэтому если вы пишите свою библиотеку на Go и в ней есть компонент логирования, не забудьте предусмотреть интерфейс для замены логера на пользовательский.

Резюмируя:

  • Логируйте с избытком. Никогда заранее не известно сколько и какой информации в логах понадобится в критический момент.
  • Восемь уровней логирования — вам действительно столько надо? По опыту должно хватить максимум 3-4, и то при условии, что для них настроены обработчики событий.
  • По возможности используйте ленивые вычисления для вывод сообщений в лог
  • Всегда добавляйте текущий контекст в каждое сообщение лога, как минимум requestID.
  • По возможности настраивайте сторонние библиотеки таким образом, чтобы они использовали логер с текущим контекстом запроса.

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *