UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

160 lines 4.63 kB
/** * Система логирования для миграций */ import { EventEmitter } from 'events'; import { MigrationExecutionInfo } from './MigrationRunner'; import { MigrationTask } from './MigrationScheduler'; import { IMigration, MigrationResult } from '../types/migration-interfaces'; /** * Уровень логирования */ export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; /** * Запись лога */ export interface LogEntry { timestamp: Date; level: LogLevel; source: string; message: string; context?: Record<string, any>; migrationId?: string; taskId?: string; } /** * Конфигурация логгера */ export interface MigrationLoggerConfig { minLevel?: LogLevel; console?: boolean; maxEntries?: number; formatter?: (entry: LogEntry) => string; filter?: (entry: LogEntry) => boolean; sources?: { [source: string]: { enabled?: boolean; level?: LogLevel; }; }; } /** * Интерфейс для вывода логов */ export interface LogOutput { write(entry: LogEntry): Promise<void>; flush?(): Promise<void>; close?(): Promise<void>; } /** * Консольный вывод */ export declare class ConsoleLogOutput implements LogOutput { private colors; private reset; write(entry: LogEntry): Promise<void>; } /** * Вывод в память */ export declare class MemoryLogOutput implements LogOutput { private entries; private maxEntries; constructor(maxEntries?: number); write(entry: LogEntry): Promise<void>; getEntries(): LogEntry[]; clear(): void; } /** * Логгер миграций */ export declare class MigrationLogger extends EventEmitter { private config; private outputs; private memoryOutput; private levelPriority; constructor(config?: MigrationLoggerConfig); /** * Форматирование по умолчанию */ private defaultFormatter; /** * Добавление вывода */ addOutput(output: LogOutput): void; /** * Удаление вывода */ removeOutput(output: LogOutput): void; /** * Логирование сообщения */ log(level: LogLevel, source: string, message: string, context?: Record<string, any>): Promise<void>; /** * Логирование отладки */ debug(source: string, message: string, context?: Record<string, any>): Promise<void>; /** * Логирование информации */ info(source: string, message: string, context?: Record<string, any>): Promise<void>; /** * Логирование предупреждения */ warn(source: string, message: string, context?: Record<string, any>): Promise<void>; /** * Логирование ошибки */ error(source: string, message: string, context?: Record<string, any>): Promise<void>; /** * Логирование начала выполнения миграции */ logMigrationStart(migration: IMigration): Promise<void>; /** * Логирование успешного завершения миграции */ logMigrationSuccess(migration: IMigration, result: MigrationResult): Promise<void>; /** * Логирование ошибки миграции */ logMigrationError(migration: IMigration, error: Error): Promise<void>; /** * Логирование начала выполнения задачи */ logTaskStart(task: MigrationTask): Promise<void>; /** * Логирование завершения задачи */ logTaskComplete(task: MigrationTask): Promise<void>; /** * Логирование выполнения плана миграций */ logExecutionInfo(info: MigrationExecutionInfo): Promise<void>; /** * Получение записей из памяти */ getEntries(filter?: { level?: LogLevel; source?: string; migrationId?: string; taskId?: string; since?: Date; until?: Date; }): LogEntry[]; /** * Очистка логов */ clear(): void; /** * Получение статистики */ getStats(): { totalEntries: number; byLevel: Record<LogLevel, number>; bySource: Record<string, number>; }; /** * Закрытие логгера */ close(): Promise<void>; } //# sourceMappingURL=MigrationLogger.d.ts.map