log-data

<source>Хаб задаёт сам

Записывать ли каждый байт обмена
в конфигурации это строкаlog-data falseвнутри блока <source>
То же имя ещё 1:<source><transmissions-api>— часть из них другие настройки, часть та же самая
Последняя ступень, когда остальные не помогли

Строка пишет каждый байт обмена — двумя колонками сразу: шестнадцатеричные коды и их текстовое представление. Умолчание — false.

Зачем такая подробность. Она отвечает на вопросы, которые не видны в тексте разговора: чем кончаются строки — переводом строки или парой возврат-перевод, как требует стандарт; нет ли в письме непечатаемых знаков; где именно обрывается передача.

Третья и последняя ступень. log-connections — факт соединения, log-commands — разговор, эта — байты. Объём растёт кратно телу письма: побайтовая запись больше самого письма примерно вчетверо.

Включать её на потоке нельзя. Это инструмент для одного воспроизведения неисправности в узком источнике, а не режим работы.

Главная ловушка — включить, не сузив источник. На боевом потоке побайтовая запись заполняет диск за минуты, и первым кончится место у учёта и спула, которые обычно лежат на том же разделе.
Что делает Хаб. Пишет — явное no, с предупреждением в шаблоне «even more verbose!».

Одноимённая строка есть и в блоке <transmissions-api> — это про подачу по HTTP, и её мы не пишем: блока API в нашей конфигурации нет.

Рекомендуемые значения

Только под конкретное воспроизведение:

Значение Когда
no (умолчание) всегда
yes в узком источнике разбираем испорченные знаки или обрыв передачи

До неё стоит пройти обе ступени ниже — они дешевле и чаще всего достаточны.

Умолчание false и двойной вид записи (шестнадцатеричный и текстовый) — из руководства (§ 3.3.7.66). Оценка объёма и правило «сначала ступени ниже» — наши.
Пример в конфигурации
# последняя ступень: разбираем испорченные знаки в теле письма
<source 10.0.0.7>
    log-data true</source>
Источник обязательно узкий. В 0/0 эта строка заполняет диск за минуты, и первым пострадает учёт на том же разделе.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается1 ошибка▶

Включают на боевом потоке

наш опыт

Чем чреватоПобайтовая запись примерно вчетверо больше самих писем. Диск заполняется за минуты, и первым кончится место у учёта и спула на том же разделе.
Как заметитьЖурнал вырос до гигабайтов за считаные минуты.
Как правильноНемедленно убрать строку; включать только в источнике, ограниченном одним адресом.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
log-data <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.7.66
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<source>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <source> и достаётся тому, чей адрес совпал с блоком. Такая же строка есть в <transmissions-api> — там она про подачу по HTTP.
Как проверить на узле
Записи узнаются по колонкам шестнадцатеричных кодов:
grep -E "^[0-9A-F]{16,}" /var/log/pmta/log | tail -10
Слева коды, справа их текстовый вид. Здесь и видно, чем кончаются строки: 0D0A — по стандарту, одиночный 0A — нет.
В Хабе
Управляется
Инфраструктура → Параметры узла
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Разобрать зависшую очередь