При разработке веб-проектов я обычно использую логирование двумя способами:
1. Для простых проектов - логи пишутся файл
2. Для крупных проектов - бизнесовые логи пишу в очередь (rabbitmq), а системные логи также в файл. Дальше эти логи забирает logstash и закидывает в elasticsearch.
Также все чаще встречаю два других способа (из всяких докладов и кейсов), которые мне интересны:
1. Логи писать в syslog (rsyslog, nxlog и прочие реализации).
Одно из известных мне преимуществ - производительность.
2. Логи писать в stdout/stder согласно
12 факторной архитектуре.
Как я понял, из преимуществ то, что если у нас много сервисов, то все они пишут лог по одному принципу, и из-за этого можно легко управлять логами всех сервисов.
Т.е. само приложение передает ответственность за управление логами выше.
Если что-то неправильно понял - прошу поправить.
У меня возникло несколько вопросов:
1. В каких случаях обычно пишут логи в syslog ? был ли у вас опыт ?
Какие есть минусы и плюсы ?
2. Честно говоря, мне не совсем понятен принцип отправки логов в stdout.
Во-первых, что значит в stdout ? если это веб-приложение (сайт), то лог сразу будет показан пользователю ?..
Во-вторых, как собирать потом эти логи, если проект не использует например контейнеризацию ?
Какие есть минусы и плюсы у этого подхода ? Какой у вас был опыт ?