Что логировать?
- Нужно центролизованно логировать все http-запросы
- Нужно централизованно логировать все исключения
- Нужно логировать все аргументы сервисов приложения
- Нужно логировать все аргументы клиентов
- Нужно логировать ветвление логики (в самом ветвлении или после него)
- Любые другие логи по усмотрению разработчика
Уровни логирования
- ERROR – точно произошла ошибка
- WARN – возможно произошла ошибка
- INFO – обычно логи в начале функций
- DEBUG – обычно логи в середине и в конце функций
- TRACE – логирование больших данных
Нормальный уровень логов – DEBUG, поэтому на практике редко приходится думать, что положить в INFO, а что в DEBUG.
Куда логировать?
Логировать нужно в stdout, никаких файлов не надо.
Потом хорошо бы, чтобы эти логи собирались в какую-нибудь систему. Например, Kibana.