News Grower

Независимое покрытие AI, стартапов и технологий.

Логгер — это не про скорость: что действительно важно в дизайне

Когда логирование попадает в реальную систему, довольно быстро становится понятно, что это не про API и не про удобство вызова. Это про постоянный компромисс. С одной стороны, хочется, чтобы система работала максимально быстро: любое логирование — это накладные ...

Логгер — это не про скорость: что действительно важно в дизайне

Когда логирование попадает в реальную систему, довольно быстро становится понятно, что это не про API и не про удобство вызова. Это про постоянный компромисс. С одной стороны, хочется, чтобы система работала максимально быстро: любое логирование — это накладные расходы, и в нормальном режиме его стараются минимизировать. С другой стороны, как только возникает проблема, внезапно оказывается, что либо логов недостаточно, либо они есть, но в таком виде, что восстановить картину происходящего невозможно. В этот момент становится очевидно, что задача логгера — не просто «писать строки» максимально быстро, а помогать удерживать баланс между производительностью и диагностируемостью.Первая проблема, которая всплывает практически сразу, связана не со скоростью, а со структурой. Лог начинает отражать структуру кода, а не структуру происходящего. Есть бизнес‑логика, есть библиотеки, есть множество параллельных операций, и каждая из них пишет что‑то своё. В итоге лог превращается в поток сообщений, где перемешаны разные задачи, и вместо «обработки конкретного запроса» мы видим просто последовательность вызовов. На небольшом проекте это ещё можно терпеть, но в серверной системе такая картина быстро становится непригодной для анализа.Естественное желание — привязать лог не к месту вызова, а к самой задаче. Самый прямой путь — передавать контекст через параметры (например, инстанс логгера), но довольно быстро это начинает протекать через весь код и превращается в обязательный шум в сигнатурах. Гораздо более устойчивый подход — привязать контекст к потоку выполнения. В библиотеке logme это делается через thread channel:

Связанные теги

Компании и люди

Линия сюжета

Продолжить следить за темой

Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.

[Перевод] Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

[Перевод] Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

Tailwind отлично работает для быстрого прототипирования, но становится проблемой когда проект растёт. Разбираю три подхода к построению дизайн-системы на Tailwind — CVA, CSS-пер...

[Перевод] Присяжные решили: Meta* и Google нанесли вред ребенку. Что дальше?

Почему радикальные меры вроде возрастных цензов и отмены «Раздела 230» не сделают соцсети безопаснее.От переводчика: ниже выжимка из этого длинного подкаста. Главные мысли и инс...

«Олег, разверни тестовую базу»: как таска на 5 минут сорвала финтех-релиз и поссорила три отдела

«Олег, разверни тестовую базу»: как таска на 5 минут сорвала финтех-релиз и поссорила три отдела

Все началось с обычного тикета в Jira, из тех, которые выглядят безобидно и даже немного скучно. «Нужно протестировать новый личный кабинет. Разверни тестовую базу». Через неско...

Из Excel в BI и/или Р7 офис без боли: ускоряем миграцию дата-проектов (разбираем Power Query)

Из Excel в BI и/или Р7 офис без боли: ускоряем миграцию дата-проектов (разбираем Power Query)

Всем привет. Да мы снова про Excel и да мы уверены что более совершенного инструмента для первичной обработки информации нет ( и возможно не будет). Мы не ставим себе цель убеди...

Обзор импортозамещённого ноутбука KVADRA LE14U

Обзор импортозамещённого ноутбука KVADRA LE14U

Всем привет! Меня зовут Александр Васильцов, я руковожу отделом развития инфраструктуры в R-Style Softlab — дочерней компании РСХБ. В рамках своей работы я занимаюсь тестировани...

TypeScript врёт — а вы об этом не знаете. Валидация ответов сервера

TypeScript врёт — а вы об этом не знаете. Валидация ответов сервера

Недавно я обнаружил, что далеко не все знают об одной простой вещи — и это меня удивило.Многие думают примерно так: «я описал интерфейс, указал что GET /users возвращает User[],...

Рекламный слот

Встроенный блок в статье

Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.

Партнерский слот

Похожие статьи

Еще материалы, которые пересекаются по тегам, источнику или категории.

[Перевод] Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

[Перевод] Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

Tailwind отлично работает для быстрого прототипирования, но становится проблемой когда проект растёт. Разбираю три подхода к построению дизайн-системы на Tailwind — CVA, CSS-пер...

[Перевод] Присяжные решили: Meta* и Google нанесли вред ребенку. Что дальше?

Почему радикальные меры вроде возрастных цензов и отмены «Раздела 230» не сделают соцсети безопаснее.От переводчика: ниже выжимка из этого длинного подкаста. Главные мысли и инс...

«Олег, разверни тестовую базу»: как таска на 5 минут сорвала финтех-релиз и поссорила три отдела

«Олег, разверни тестовую базу»: как таска на 5 минут сорвала финтех-релиз и поссорила три отдела

Все началось с обычного тикета в Jira, из тех, которые выглядят безобидно и даже немного скучно. «Нужно протестировать новый личный кабинет. Разверни тестовую базу». Через неско...

Из Excel в BI и/или Р7 офис без боли: ускоряем миграцию дата-проектов (разбираем Power Query)

Из Excel в BI и/или Р7 офис без боли: ускоряем миграцию дата-проектов (разбираем Power Query)

Всем привет. Да мы снова про Excel и да мы уверены что более совершенного инструмента для первичной обработки информации нет ( и возможно не будет). Мы не ставим себе цель убеди...

Еще материалы от Habr

Свежие публикации и продолжение темы от той же редакции.

Открыть страницу источника
[Перевод] Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

[Перевод] Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

Tailwind отлично работает для быстрого прототипирования, но становится проблемой когда проект растёт. Разбираю три подхода к построению дизайн-системы на Tailwind — CVA, CSS-пер...

[Перевод] Присяжные решили: Meta* и Google нанесли вред ребенку. Что дальше?

Почему радикальные меры вроде возрастных цензов и отмены «Раздела 230» не сделают соцсети безопаснее.От переводчика: ниже выжимка из этого длинного подкаста. Главные мысли и инс...

«Олег, разверни тестовую базу»: как таска на 5 минут сорвала финтех-релиз и поссорила три отдела

«Олег, разверни тестовую базу»: как таска на 5 минут сорвала финтех-релиз и поссорила три отдела

Все началось с обычного тикета в Jira, из тех, которые выглядят безобидно и даже немного скучно. «Нужно протестировать новый личный кабинет. Разверни тестовую базу». Через неско...

Из Excel в BI и/или Р7 офис без боли: ускоряем миграцию дата-проектов (разбираем Power Query)

Из Excel в BI и/или Р7 офис без боли: ускоряем миграцию дата-проектов (разбираем Power Query)

Всем привет. Да мы снова про Excel и да мы уверены что более совершенного инструмента для первичной обработки информации нет ( и возможно не будет). Мы не ставим себе цель убеди...