Эта строка неверна:
openlog("vyatta-conntrack", "", LOG_USER);
"" должен был целым числом:
void openlog(const char *ident, int option, int facility);
Целое число должно быть любой из этих констант ORedвместе:
LOG_CONS Write directly to system console if there is
an error while sending to system logger.
LOG_NDELAY Open the connection immediately (normally, the
connection is opened when the first message is
logged).
LOG_NOWAIT Don't wait for child processes that may have
been created while logging the message. (The
GNU C library does not create a child process,
so this option has no effect on Linux.)
LOG_ODELAY The converse of LOG_NDELAY; opening of the
connection is delayed until syslog() is
called. (This is the default, and need not be
specified.)
LOG_PERROR (Not in POSIX.1-2001.) Print to stderr as
well.
LOG_PID Include PID with each message.
Попробуйте еще раз что-то вроде:
openlog("vyatta-conntrack", LOG_PID, LOG_USER);
Обратите внимание, что ваша конфигурация syslogd
может быть не настроена для хранения сообщений уровня журнала LOG_INFO
.Попробуйте LOG_ALERT
или что-то еще для устранения этой проблемы - если это работает, вернитесь к LOG_INFO
и настройте syslogd
для хранения сообщений журнала, которые вы хотите сохранить.Добавление строки вроде:
*.* /var/log/all_messages.log
сделает работу за rsyslogd(8)
.Обязательно прочитайте справочную страницу rsyslog.conf(5)
, если ваша система использует rsyslogd(8)
.Если ваша система использует другой демон системного журнала, проверьте подробности в руководствах системы.