DEV_EASY_NOTES Telegram 427
Когда смотришь, как сделаны логи в других системах, понимаешь, насколько круто реализованы логи в Java. Вот смотрите, основная проблема: у тебя есть какая-то библиотека, в которой есть логи. Есть два варианта, как их делать: забить и просто всегда выводить в консоль, либо ты каким-то образом предоставляешь клиенту возможность использовать свой логер.

В мире бэкенд-разработки на Java, разработчики сели, подумали и решили: а давайте сделаем общий интерфейс логов, на который все будут завязаны, и чтобы была возможность в runtime подставить реализацию, удобную клиенту. Так появился SLF4J. Поэтому все библиотеки для Java завязываются на SLF4J, и если у вас в проекте уже настроен логгер, он автоматически будет работать с этой библиотекой – весьма удобно.

В мире Android все либо используют Timber (или какой-то мультиплатформенный аналог), либо делают что-то свое. Библиотеки в основном предоставляют какой-то интерфейс для логов, например, Interceptor в OkHttp. Общего решения может и нет, но жить можно.

Однако в мире js все гораздо забавнее. Я делал сервис с использованием Next.js. Эти ребята вообще не заморачиваются с логированием, они просто выводят все в консоль. Нет никаких стандартных инструментов, чтобы это исправить. Что если мне нужно не в консоль, а в файл? Что если мне нужен особый формат? Вообще похую.

Решается это интересным способом. Так как JavaScript весь из себя такой гибкий, можно просто переопределить стандартную функцию вызова консоли на свою функцию, в которой мы уже вызываем нормальный логгер.

Ох уж эти фронтендеры, казалось бы, простая вещь, которая уже решена, но даже тут возникают сложности.
🗿22😁7👍52🔥1🤔1



tgoop.com/dev_easy_notes/427
Create:
Last Update:

Когда смотришь, как сделаны логи в других системах, понимаешь, насколько круто реализованы логи в Java. Вот смотрите, основная проблема: у тебя есть какая-то библиотека, в которой есть логи. Есть два варианта, как их делать: забить и просто всегда выводить в консоль, либо ты каким-то образом предоставляешь клиенту возможность использовать свой логер.

В мире бэкенд-разработки на Java, разработчики сели, подумали и решили: а давайте сделаем общий интерфейс логов, на который все будут завязаны, и чтобы была возможность в runtime подставить реализацию, удобную клиенту. Так появился SLF4J. Поэтому все библиотеки для Java завязываются на SLF4J, и если у вас в проекте уже настроен логгер, он автоматически будет работать с этой библиотекой – весьма удобно.

В мире Android все либо используют Timber (или какой-то мультиплатформенный аналог), либо делают что-то свое. Библиотеки в основном предоставляют какой-то интерфейс для логов, например, Interceptor в OkHttp. Общего решения может и нет, но жить можно.

Однако в мире js все гораздо забавнее. Я делал сервис с использованием Next.js. Эти ребята вообще не заморачиваются с логированием, они просто выводят все в консоль. Нет никаких стандартных инструментов, чтобы это исправить. Что если мне нужно не в консоль, а в файл? Что если мне нужен особый формат? Вообще похую.

Решается это интересным способом. Так как JavaScript весь из себя такой гибкий, можно просто переопределить стандартную функцию вызова консоли на свою функцию, в которой мы уже вызываем нормальный логгер.

Ох уж эти фронтендеры, казалось бы, простая вещь, которая уже решена, но даже тут возникают сложности.

BY Dev Easy Notes




Share with your friend now:
tgoop.com/dev_easy_notes/427

View MORE
Open in Telegram


Telegram News

Date: |

With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau. Done! Now you’re the proud owner of a Telegram channel. The next step is to set up and customize your channel. Add up to 50 administrators
from us


Telegram Dev Easy Notes
FROM American