LINUX.ORG.RU

Распределенная запись в лог


0

0

Есть сервак, который форкается. Есть один общий лог файл. Как наиболее корректно из под каждого процесса делать запись в лог, что бы не было проблем с синхронизацией? Постоянно открывать файл, лочить его, делать запись, анлочить, и закрывать? Или есть другие, более менее приемлимые варианты? Спасибо.

anonymous

qx[cat $pidfile.$data>>/var/log/logfile];

и ниче лочить не надо, система сама за тебя все сделает, только если быстро все, то создай в оперативке файлик logfile и тамже сделай копию cat'а...

вроде не должно тормзить.

p.s. а что будет, если процесс залочит лог и неразлочив его умрет?

vilfred ☆☆
()

А если открыть файл с флагом O_APPEND.

andron01
()

syslog лучше использовать --- он разберется.

hatefu1_dead
()

в БД писать? :)

Pi ★★★★★
()

По хорошему нужен менеджер управляющий логированием. В принципе его зовут syslogd :). Но если есть желение, можешь сам написать, принцип прост: демон проверяет очередь сообщений и валит их в файл(ы), каждому процессу которому надо писать логи линкуем библиотеку в которой есть функция записи сообщения в очередь, и фсе.

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