Иван Филатов, так ведь есть кастомизация вывода через принтер логов. В этом случае даже сторонняя библиотека для JSON не нужна, форматированный текст можно прямо в принтере задавать.
Я работал с Easylogging и P7, свой принтер для них не составляет никакого труда. В моих проектах требовались не только JSON логи, но и бинарные, и с шифрованием, и с обфускацией. Принтеров было много и создавать их проблемы не было.
Евгений Шатунов, принтер это некий форматер? насколько он прозрачный для приложения и остального кода?
условно можно эти принтеры менять, настраивать не меняя код приложения?
Иван Филатов, да. Я немного неправильно пишу, я привык эту сущность называть принтером, т.к. она отвечает за преобразование внутреннего представления лога во внешнее. Конечно эту сущность еще можно назвать форматером или билдером.
Вот пример такой сущности для Easylogging: https://github.com/zuhd-org/easyloggingpp/blob/mas...
И, да, принтеры можно настраивать никак не меняя код приложения. Принтер, как в том же примере Easylogging, прикрепляется к категории, или на все категории, во время конфигурирования библиотеки.
Всегда делаю свою систему логирования. Ничего сложного. Создаю отдельный класс, в нем пару методов, типа, записать лог, куда записать ну и все. Обычно этого достаточно
Это пока тебе логи нужны постольку-поскольу.
Стоит столкнуться с серьезным проектом - как понимания зачем нужны эти библиотеки, что их сделали не зря - приходит.
Развитая система логирования не зря имеет кучу настроек.
Скажем, изменять подробность логирования - DEBUG или только WARN
А без этого - вы просто потоните в логах.