Перенаправить журнал средства системного журнала в пользовательский файл

У меня есть встроенная система с занятой коробкой в ​​нем. Страница руководства занятой коробки гласит, что:

«Обратите внимание, что эта версия syslogd игнорирует /etc/syslog.conf.»

Есть опция -O, но она перенаправляет все сообщения в пользовательский файл.
Я отправляю сообщения из C ++.
Нашел где-то опцию -f для настройки внешнего конфигурационного файла — не работает.

Вот как я подключаюсь к логгеру из своего приложения:

    bool Log::start()
{
/* Launch process here */
setlogmask(LOG_UPTO (LOG_DEBUG));
openlog(LOG_IDENTITY, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

return true;
}

Может ли другое местоположение журнала для определенного объекта или объекта маскировать весь системный журнал, вызывая функции из моего приложения? Или как-то?

0

Решение

Мы столкнулись с той же проблемой (не с Busybox, а с перенаправлением системного журнала приложения в другой файл журнала, используя простой системный журнал syslogd). Решение состоит из двух шагов:

  1. Обновите вызов приложения к openlog (), чтобы установить для третьего параметра значение int facility и затем создайте код конфигурации, который преобразует LOCAL0 через LOCAL7 в метки LOG_LOCAL0 через LOG_LOCAL7. Затем мы настраиваем приложение, чтобы указать LOCAL3 для тех хостов, где нужны только данные журнала этого приложения.

  2. Затем наши сотрудники по эксплуатации работают над настройкой syslogd для перенаправления данных журнала для объекта LOCAL3 в отдельный файл. Я не знаю точно, что они придумали, поэтому я не буду спекулировать дальше. Но они попросили меня настроить средство, зная, что они могут перенаправлять вывод syslogd в зависимости от средства.

Одна вещь, которую я заметил, это то, что вы используете LOG_CONS, Раньше я делал это, но обнаружил, что когда syslogd не может быть записан, это заставляет syslog разветвлять дочерний процесс и таблицу процессов Solaris x86_64, заполненную зомби. Так что я больше не использую этот флаг.

0

Другие решения


По вопросам рекламы [email protected]