LINUX.ORG.RU

Запись логов


0

0

Сделал я небольшого демона, за работой которого можно проследить только по логам. Логи пишутся в отдельный файл через fprintf... ну и естесственно физически запись в файл происходит только когда заполняется кеш-буфер. Можно как-нибудь принудительно заставить систему произвести запись?

логи обычно пишутся используя функции для этого предназначенные,

#include <syslog.h>

setlogmask (LOG_UPTO (LOG_NOTICE));

openlog ("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);

syslog (LOG_NOTICE, "Program started by User %d", getuid ());
syslog (LOG_INFO, "A tree falls in a forest");

closelog ();

что касается ответа на ваш вопрос,
man fflush

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

хмм... вот только еще один вопрос - а если я хочу использовать свой собственный файл протокола, возможно ли это сделать через syslog? Судя по описанию openlog, syslog это невозможно.

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

> логи обычно пишутся используя функции для этого предназначенные,

"ну, зачем же так .. вот, я Варвара Сергеевна недавно был в Лондоне
и там" логи пишутся с помошью "home-made functions"

Хорошая вещь есть http://logging.apache.org/

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

> а если я хочу использовать свой собственный файл протокола, возможно ли это сделать через syslog?

да, можно. задать facility на LOG_LOCAL# и прописать в /etc/syslog.conf

local#.* /your/log/file.name

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