Фреймворк Fresh для JavaScript предлагает встроенный механизм логирования, который позволяет детально отслеживать поведение приложения на разных этапах выполнения. Важным аспектом организации логов является использование уровней логирования, позволяющих классифицировать сообщения по степени важности и назначению.
Fresh поддерживает несколько стандартных уровней логирования, каждый из которых предназначен для конкретной категории сообщений:
TRACE Наиболее подробный уровень, используемый для отслеживания мелких деталей работы приложения. Включает информацию о каждом вызове функций, передаваемых параметрах и внутренних процессах. Полезен при глубокой отладке.
DEBUG Содержит сообщения для разработчика, которые помогают понять, что происходит внутри приложения. Обычно включает состояние переменных, шаги выполнения бизнес-логики и промежуточные вычисления.
INFO Служит для логирования значимых событий в приложении, таких как запуск серверов, успешные подключения к базе данных или обработка запросов. Используется для мониторинга работы приложения без излишней детализации.
WARN Отображает потенциально проблемные ситуации, которые не прерывают работу приложения, но могут привести к ошибкам. Например, использование устаревших API, неожиданные значения параметров или небольшие ошибки в обработке данных.
ERROR Сообщает о критических ошибках, которые требуют немедленного вмешательства. Сюда входят исключения, сбои при подключении к внешним сервисам, ошибки при работе с базой данных. Часто сопровождается стек-трейсом.
FATAL Наиболее высокий уровень, сигнализирующий о необратимых ошибках, которые приводят к остановке приложения. Используется крайне редко, только в случаях полного сбоя системы.
Fresh позволяет гибко настраивать уровень логирования через конфигурацию. Настройка уровня определяет, какие сообщения будут выводиться в консоль или записываться в файл. Все сообщения уровней выше или равные заданному будут логироваться.
import { log } from "fresh";
log.setLevel("DEBUG");
log.debug("Это сообщение уровня DEBUG");
log.info("Это сообщение уровня INFO");
log.warn("Это сообщение уровня WARN");
В примере выше, при установленном уровне DEBUG, будут
отображаться сообщения уровней DEBUG, INFO,
WARN, ERROR и FATAL. Сообщения
уровня TRACE игнорируются.
Для удобства анализа логов Fresh поддерживает контексты и метки, которые позволяют группировать сообщения по компонентам приложения. Контекст обычно отражает модуль или функциональный блок, а метка — конкретное действие или процесс.
log.info({ context: "database", label: "connection" }, "Подключение к базе данных выполнено успешно");
Такой подход облегчает фильтрацию и поиск сообщений в больших логах.
Fresh поддерживает различные форматы логирования:
Настройка формата производится через объект конфигурации:
log.configure({
format: "json",
output: "logs/app.log",
});
DEBUG
или TRACE, чтобы отслеживать все детали работы.INFO или WARN, чтобы логировать только важные
события и ошибки.ERROR и FATAL обязательно для
критических сервисов, чтобы своевременно выявлять сбои.Fresh легко интегрируется с системами централизованного логирования. JSON-формат позволяет отправлять сообщения напрямую в:
Такая интеграция позволяет создавать дашборды, строить метрики по уровням логирования и оперативно реагировать на критические события.
Система уровней логирования в Fresh обеспечивает баланс между информативностью и производительностью. Правильная настройка уровней, контекстов и форматов вывода позволяет получать структурированные, легко анализируемые данные о работе приложения, ускоряет диагностику ошибок и улучшает мониторинг в реальном времени.