@nestlingjs/logging
v0.4.0
Published
Интерфейс логгера Nestling и штатная реализация: четыре уровня, три формы вызова, дочерний логгер с привязками, вывод в stderr текстом или JSON
Maintainers
Readme
@nestlingjs/logging
Интерфейс логгера Nestling и штатная реализация: четыре уровня, три формы
вызова у каждого, дочерний логгер с привязками и вывод в stderr текстом
или JSON. Зависимостей у пакета нет — он лежит в основании дерева, поэтому
сателлит логирования берёт отсюда интерфейс, не притаскивая ядро.
🚧 Активная разработка, API может меняться. Дизайн:
docs/design/container.md, раздел «Логгер ядра». Гайд: глава 9. Видеть каждый запрос в логе.
Установка
npm install @nestlingjs/loggingМинимальный пример
import { makeConsoleLogger } from '@nestlingjs/logging';
const logger = makeConsoleLogger({ level: 'info', format: 'json' });
logger.info('document written', { file, paths: 12 });
logger.child({ scope: 'openapi' }).warn(new Error('schema skipped'));Приложение этот пакет не ставит: @nestlingjs/app зависит от него и
реэкспортирует и типы, и фабрику. Ставят его те, кому нужен интерфейс без
ядра, — адаптер стороннего логгера и скрипт вне приложения.
Экспорты
| Имя | Что это |
| --- | --- |
| Logger | интерфейс логгера: debug, info, warn, error, child |
| LogMethod | метод уровня: три формы вызова |
| Fields | поля записи; ключ err зарезервирован за ошибкой |
| LogLevel | уровень записи: debug, info, warn, error |
| LogThreshold | порог записи: уровень или silent |
| LogFormat | формат строки: text или json |
| ConsoleLoggerOptions | опции фабрики: level и format |
| makeConsoleLogger | штатный логгер; умолчания info и text |
| LogEntry | запись, готовая к печати: время, уровень, сообщение, поля |
| formatLine | строка записи выбранного формата |
| serializeError | ошибка полями name, message, stack, cause |
Класс реализации наружу не идёт: логгер создаёт фабрика. Формат,
наоборот, публичный: им печатает и штатный логгер, и сателлит
@nestlingjs/logging.pino, поэтому реализация у формата одна.
Границы пакета
Пакет описывает, чем пишут, и пишет сам. DI-токены RootLogger$ и
Logger$, секция конфига nestlingLog и декоратор полей корреляции живут
в @nestlingjs/app: им нужны контейнер, конфиг и ячейка запроса.
