@crysteam/logger (0.0.1)

Published 2025-07-20 13:51:47 +00:00 by Kiefe

Installation

@crysteam:registry=
npm install @crysteam/logger@0.0.1
"@crysteam/logger": "0.0.1"

About this package

Crysteam.Logger

Crysteam.Logger — легковесная, быстрая и расширяемая библиотека для трассировки и логирования бизнес-процессов с поддержкой вложенных шагов, событий и интеграции с базой данных.

Быстрый старт

npm install @crysteam/logger
import { CrysteamLogger } from '@crysteam/logger';

// Настройка обработчиков событий
CrysteamLogger.configureHandlers({
  onTraceStart: (trace) => console.log(`[TRACE START] ${trace.name}`),
  onStepStart: ({ step }) => console.log(`[STEP] ${step.name}`),
  onStepEnd: ({ step }) => console.log(`[STEP END] ${step.name}`),
  onTraceEnd: (trace) => console.log(`[TRACE END] ${trace.name} - Status: ${trace.status}`),
  onTraceEndAsync: async (trace) => {
    // Сохраняем в базу данных
    // await db.save(trace.toJSON());
    console.log('[DB] Trace saved:', JSON.stringify(trace));
  }
});

const trace = CrysteamLogger.startTrace('MyProcess');
const step = trace.step('Step 1');
const subStep = step.step('SubStep 1.1');
subStep.end();
step.end();
trace.end();

Основные возможности

  • Вложенные шаги любого уровня
  • Метаданные и ошибки на каждом шаге
  • Продвинутая сериализация (toJSON)
  • Асинхронные обработчики событий (например, для сохранения в БД)
  • Включение/отключение трассировки (production-ready)

API

CrysteamLogger

  • static configureHandlers(handlers: TraceEventHandlers) — установка обработчиков событий
  • static startTrace(name: string, metadata?: object): Trace — начать трассировку
  • static enabled: boolean — включить/выключить трассировку

Trace

  • step(name: string, metadata?: object): TraceStep — добавить шаг
  • end(error?: Error): this — завершить трассировку
  • durationMs: number — длительность
  • toJSON(): object — сериализация без циклов

TraceStep

  • step(name: string, metadata?: object): TraceStep — добавить подшаг
  • end(error?: Error): this — завершить шаг
  • durationMs: number — длительность
  • toJSON(): object — сериализация без циклов

TraceEventHandlers

  • onTraceStart(trace)
  • onStepStart({ trace, step })
  • onStepEnd({ trace, step })
  • onError({ trace, error })
  • onTraceEnd(trace)
  • onTraceEndAsync(trace) — асинхронное сохранение (например, в БД)

Пример вложенных шагов

const trace = CrysteamLogger.startTrace('OrderProcess', { orderId: 42 });
const step = trace.step('ValidateOrder');
const subStep = step.step('CheckStock');
subStep.end();
step.end();
trace.end();

Отключение трассировки

CrysteamLogger.enabled = false; // трассировка не будет вестись

Лицензия

MIT

Dependencies

Dependencies

ID Version
@crysteam/error ^0.0.4

Development Dependencies

ID Version
@types/node ^22.15.29
ts-node ^10.9.2
typescript ^5.8.3
Details
npm
2025-07-20 13:51:47 +00:00
29
Crysteam
ISC
5.4 KiB
Assets (1)
Versions (3) View all
0.1.0 2025-07-26
0.0.2 2025-07-20
0.0.1 2025-07-20