LINUX.ORG.RU
ФорумAdmin

syslog & openlog trable. Help, pls.!


0

0

Hi, All! При написании проги столкнулся с совершенно непонятной заморочкой в работе syslog.

Имеется программа vpn, работает в качестве демона тарификации. Она выводит различную инфу в лог-файл. Строка в syslog.conf выглядит так: !vpn *.* /var/log/vpn.log вызов openlog в проге выглядит так: openlog("VPN",LOG_PID,LOG_DAEMON); так вот: если использовать вызов openlog, то в указанный лог ничего не пишется. Вообще ничего. При этом сообщения например об ошибках выводятся в различные файлы типа /var/log/messages, например. В syslog.conf /var/log/messages описан как *.notice /var/log/messages. Если же openlog не использовать, а пользоваться только syslog, то все желаемые сообщения выводятся в файл /var/log/vpn.log. Используется OS FreeBSD 4.7 Подскажите, как заставить писать сообщения в родной лог с использованием openlog? С уважением, Сергей

anonymous

я так понимаю, что это строчка С-кода? тогда VPN - это это не название лог-файла, а строка которая вставляется перед тем что выводится функцией syslog. LOG_DAEMON говорит, что вывод будет осуществляться в faicity daemon. т.е. тот файл, что у тебя в syslog.conf прописан против daemon.* чтобы писало куда ты хочешь поменяй в openlog LOG_DAEMON на что-то вроде LOG_LOCAL0 и в syslog.conf пропиши local0.* /var/log/vpn.log это все верно для линукса, но в бсд, я думаю, то же самое. man openlog. man syslog.

massaraksh
()
Ответ на: комментарий от massaraksh

Это все к сожалению мне известно :/ К сожалению - это потому что должно работать, а оно не работает !vpn *.* должна принимать все сообщения от программы vpn, не так ли? а "VPN" в openlog - да, это просто префикс выводимого в лог сообщения сделал следующее: syslog.conf: #!vpn local1.* /var/log/vpn.log прога: const char pcszProgName[] = "VPN"; //Open syslog openlog(pcszProgName,LOG_PID,LOG_LOCAL1); syslog(LOG_INFO,"Program started\n"); Сам файл обладает всеми нужными праваит и лежит в нужном месте: /var/log/vpn.log -rw-rw-rw

Не выводится! Где копать? может бага?

darkmalysh
()

насколько я знаю - нет. у syslog есть фиксированный набор facilities и vpn facility там нет. т.е. любые записи типа vpn или !vpn syslog не поймет. напиши в syslog.conf просто: local1.* /var/log/vpn.log все что выводится в local1 должно попасть в vpn.log

massaraksh
()

Написал в проге следующее:
openlog(pcszProgName,LOG_PID,LOG_LOCAL1);

в файле syslog.conf следующее:
local1.* /var/log/vpn.log

Не работает! При этом если убрать openlog, то все начинает выводиться
Таким образом, проблема осталась.
Сергей

darkmalysh
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.