Найдите системный журнал макс. длиной сообщения

Большинство Unix-программистов привыкло бы к интерфейсу, определенному syslog.h, и много реализаций (таких как glibc) не имеют никакого реального предела на размер сообщения системного журнала, отправляемого в него, но обычно существует предел на слушание приложения /dev/log.

Я задаюсь вопросом, знает ли кто-либо способ найти максимальный размер сообщения для системного журнала? Или некоторая хорошая документация того, каков предел на самом деле (или обычно)?

Править:

До сих пор я нашел эти RFCs по теме:

14
задан Petriborg 22 July 2010 в 18:06
поделиться

1 ответ

Следует помнить, что syslog - это протокол, что означает, что он устанавливает минимальные требования и дает рекомендации. Я не могу найти источник, но я полагаю, что минимальная длина, которая должна поддерживаться, составляет 1k, а рекомендуется 64k.

Каждая реализация вольна делать то, что она хочет, т.е. если вы хотите иметь максимальный размер 16 МБ и пишете сервер syslog, вы вольны делать это. Я не уверен, зачем вам это нужно, но вы можете это сделать.

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

Обновление

Пользователь MuMind указал в комментариях, что rsyslog усекает сообщение на 2097 символах, включая тип журнала / метку времени. Поскольку это широко используемая реализация протокола, это подтверждает, что длина должна быть в пределах 1k - 1.5k для максимальной переносимости.

Честно говоря, единственной причиной для превышения этого значения может быть запись в журнал дополнительных отладочных/аварийных данных; гораздо лучше поместить это куда-нибудь в /var/log вместо этого, и просто указать, что вы сделали это при обращении к syslog (конечно, есть сценарии, когда вы не можете этого сделать, но многие библиотеки имеют встроенную регистрацию "лучших усилий" для решения этой проблемы).

10
ответ дан 1 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: