Назад | Перейти на главную страницу

Могу ли я указать syslog, syslog_ng для записи выделенных данных журнала для процесса в отдельный файл журнала

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

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

Так ли это? какие есть альтернативы?

Приложение не может решить, что происходит с его сообщениями журнала, если используется syslog. Это решение принимается конфигурацией демона syslog.

Есть несколько способов контролировать место назначения журнала в системе с помощью syslog:

Ваше приложение может быть настроено на вход в конкретный объект. Есть некоторые средства системного уровня, такие как kernel и daemon, а также восемь объектов, зарезервированных для местного использования: local0 через local7. Вы можете либо жестко запрограммировать один из них в своем приложении, либо сделать его доступным для выбора с помощью параметра конфигурации.

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

Другой вариант состоит в том, что более современные демоны syslog, такие как syslog-ng и rsyslog, также могут быть настроены на сканирование сообщения и регистрацию в другое место назначения на основе тега в сообщении. Многие приложения часто помещают теги, например [foo] в начале сообщения системного журнала.

Обратите внимание, что фильтрация на основе тега сообщения, как правило, будет иметь худшую производительность, например: меньшая пропускная способность журнала, чем просто фильтрация по объекту. Для серверов системного журнала большого объема это может стать узким местом.

Я использую syslog-ng и считаю, что его можно использовать для создания отдельных параллельных файлов журнала для программ, хотя я думаю, что это может быть не идеально, поскольку требует изменения файлов конфигурации syslog-ng для каждой программы. Сверьтесь с вашими местными страницами руководства. :)