Пишу довольно крупный проект, он состоит из многих модулей. Встал вопрос, как нормально писать логи, стандартные средства syslog не пойдут. Проблема в том, что приложение состоит из частей, часть из которых сишные, часть - уже готовые программы, например, постфикс, и готовые программы, написанные другим разработчиком + до фига шелловых скриптов, связывающих все это в кучу. Модули работают параллельно, поэтому встает проблема аккуратной записи в файл. С сишными кусками все понятно, добавление в конец файла (когда опцию O_APPEND ставишь) атомарно. С шелловыми скриптами - подскажите, пожалуйста, как реализовано перенаправление в файл на добавление? Не возникнет ли проблемы с конструкцией вида echo "blabla" >> filename? Ну тут еще вариант написать свой бинарник на запихивание всего в лог, но хотелось бы не усложнять. И последний вопрос, про который у меня идей никаких нет вообще: как заставить сторонние проги писать туда же? Только патчи к ним писать или попроще как-то? Чисто теоретически, можно демона повесить, который при добавлении записи в лог составляющей проги пихает эту запись в главный лог, но извратно как-то... В общем, подскажите, пожалуйста, как это все можно реализовать.Заранее спасибо!))
> стандартные средства syslog не пойдута можно узнать почему?
>> стандартные средства syslog не пойдут
>
>а можно узнать почему?потому что заказчик требует, чтобы было все в отдельном файле. Если делать все через syslogd, то надо править syslog.conf, а любую правку системных конфигов хотелось бы избежать, кроме этого, я не вижу способа сделать это в скрипте так, чтобы работало универсально (это одно из требований). Так что выход вижу один - писать логгирование самостоятельно.
> Всё что не syslog - не нормально.
Это еще почему? Насколько мне известно, тот же апач тоже использует свою систему логгирования, не сислог.
>потому что заказчик требует, чтобы было все в отдельном файле. Если делать
>все через syslogd, то надо править syslog.conf, а любую правку системных
>конфигов хотелось бы избежать,Конечно, придумывать свою собственную систему взамен стандартной - куда проще, чем подправить один конфиг.
> кроме этого, я не вижу способа сделать
>это в скрипте так, чтобы работало универсально (это одно из требований).man logger
>Конечно, придумывать свою собственную систему взамен стандартной - куда проще, чем подправить
>один конфиг.Обычно не надо даже править, а добавить файл в определённую директорию.
>как нормально писать логи, стандартные средства syslog не пойдут.Всё что не syslog - не нормально.