cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
160 lines • 4.63 kB
TypeScript
/**
* Система логирования для миграций
*/
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