/** * Modular Logger System * * Production-grade logging with: * - Modular architecture * - Context tracking * - Statistics * - Graceful shutdown */ import pino from 'pino'; import type { LogLevel, LogContext, ContextualLogger } from './types.js'; import { getLogDir, getLoggerConfig } from './config.js'; import { getRuntimeLogStats } from './stats.js'; import { isLoggerShuttingDown, flushAndClose, setShuttingDown } from './shutdown.js'; import { rotateLogs, cleanOldLogs } from './rotation.js'; export declare const logger: ContextualLogger; export declare function createLogger(module: string, context?: LogContext): ContextualLogger; export declare function createModuleLogger(moduleName: string, _modulePath?: string): ContextualLogger; export declare function createExtensionLogger(extensionName: string): ContextualLogger; export declare function createServiceLogger(serviceId: string): ContextualLogger; export declare function setLogLevel(level: LogLevel): void; export declare function getLogLevel(): LogLevel; export declare function withLogLevel(level: LogLevel, fn: () => T): T; export declare function isLevelEnabled(level: LogLevel): boolean; export type { LogLevel, LogContext, LogEntry, LoggerConfig, LogFileMeta, LogQuery, LogStats, RotationResult, ContextualLogger, } from './types.js'; export { getLogDir, getLoggerConfig, getRuntimeLogStats, isLoggerShuttingDown, flushAndClose, setShuttingDown, rotateLogs, cleanOldLogs, }; export { type LogExporter, type ExporterConfig, type LokiConfig, type ElkConfig, type DatadogConfig, type WebhookConfig, initializeExporters, exportLog, flushExporters, getExporters, } from './exporters.js'; export { redactSensitiveInfo, redactObject, redactPemBlock, redactSecret, isLogRedactionEnabled, } from './redact.js'; export { type AuditEvent, type AuditEventType, type AuditLogConfig, logAuditEvent, logAuthEvent, logConfigChange, logPermissionChange, logDataAccess, configureAuditLog, getAuditConfig, } from './audit.js'; export { logger as baseLogger }; export { pino as Pino }; export { runWithLogContext, getAsyncLogContext, updateAsyncLogContext, inboundCorrelationMetadataFromAsyncLogContext, } from './context.js';