endpoint-sentinel
Version:
User-friendly security scanner with interactive setup that scales from beginner to expert
81 lines • 2.23 kB
TypeScript
/**
* Enterprise Logging System
* Provides structured logging with audit capabilities
*/
import { Logger, AuditEvent } from '../types/scanner.js';
export interface LoggerConfig {
level?: 'error' | 'warn' | 'info' | 'debug';
auditEnabled?: boolean;
outputFile?: string;
format?: 'json' | 'text';
}
/**
* Production-ready logger implementation
*/
export declare class SecurityLogger implements Logger {
private winstonLogger;
private auditLogger;
private config;
constructor(config?: LoggerConfig);
/**
* Creates the main application logger
*/
private createMainLogger;
/**
* Creates dedicated audit logger for compliance
*/
private createAuditLogger;
/**
* Log info message
*/
info(message: string, meta?: Record<string, unknown>): void;
/**
* Log warning message
*/
warn(message: string, meta?: Record<string, unknown>): void;
/**
* Log error message with optional error object
*/
error(message: string, error?: Error, meta?: Record<string, unknown>): void;
/**
* Log debug message
*/
debug(message: string, meta?: Record<string, unknown>): void;
/**
* Log audit event for compliance and security monitoring
*/
audit(event: AuditEvent): void;
/**
* Determines audit severity based on event type
*/
private getAuditSeverity;
/**
* Creates a child logger with additional context
*/
child(context: Record<string, unknown>): SecurityLogger;
/**
* Flushes all pending log writes
*/
flush(): Promise<void>;
/**
* Changes log level dynamically
*/
setLevel(level: 'error' | 'warn' | 'info' | 'debug'): void;
/**
* Gets current log level
*/
getLevel(): string;
}
/**
* Logger factory for creating configured logger instances
*/
export declare function createLogger(config?: LoggerConfig): Logger;
/**
* Creates a logger for testing with minimal output
*/
export declare function createTestLogger(): Logger;
/**
* Creates a logger optimized for production use
*/
export declare function createProductionLogger(outputFile?: string): Logger;
//# sourceMappingURL=logger.d.ts.map