@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
2025-07-20 13:51:47 +00:00
Assets (1)
Versions (3)
View all
npm
29
Crysteam
ISC
5.4 KiB
logger-0.0.1.tgz
5.4 KiB