@voilajsx/appkit
Version:
Minimal and framework agnostic Node.js toolkit designed for AI agentic backend development
102 lines • 4.5 kB
TypeScript
/**
* Console transport with smart formatting, minimal mode support, and visual error enhancement
* @module @voilajsx/appkit/loggier
* @file src/logger/transports/console.ts
*
* @llm-rule WHEN: Need console output for development or production monitoring
* @llm-rule AVOID: Using console.log directly - this handles levels, colors, and formatting
* @llm-rule NOTE: Auto-detects production/development mode and adjusts formatting accordingly
* @llm-rule NOTE: Enhanced to work with visual error formatting from loggerClass.error() method
*/
import type { LogEntry, Transport } from '../logger.js';
import type { LoggingConfig } from '../defaults.js';
/**
* Console transport with automatic formatting and smart minimal mode
*/
export declare class ConsoleTransport implements Transport {
private colorize;
private timestamps;
private prettyPrint;
private minimal;
/**
* Creates console transport with direct environment access (like auth pattern)
* @llm-rule WHEN: Logger initialization - gets config from environment defaults
* @llm-rule AVOID: Manual configuration - environment detection handles this
*/
constructor(config: LoggingConfig);
/**
* Write log entry to console with smart formatting
* @llm-rule WHEN: Outputting logs to console for development or production
* @llm-rule AVOID: Calling directly - logger routes entries automatically
* @llm-rule NOTE: Skips visual error entries since they're handled by loggerClass.error() method directly
*/
write(entry: LogEntry): void;
/**
* Check if entry should be skipped because it was already visually displayed
* @llm-rule WHEN: Enhanced error() method has already shown visual formatting
* @llm-rule AVOID: Double-displaying errors that have visual formatting
*/
private shouldSkipVisualEntry;
/**
* Format for minimal mode - clean and simple, all logs visible
* @llm-rule WHEN: Development mode with minimal scope for clean console
* @llm-rule AVOID: Adding JSON metadata - defeats purpose of minimal mode
* @llm-rule NOTE: Shows all logs but with clean formatting, no filtering
*/
private formatMinimal;
/**
* Format for pretty development mode - full detail with JSON structure
* @llm-rule WHEN: Development mode with full scope for detailed debugging
* @llm-rule AVOID: In production - too verbose for production logs
*/
private formatPretty;
/**
* Format for standard/production mode - structured but compact
* @llm-rule WHEN: Production or when structured logs needed for parsing
* @llm-rule AVOID: For development debugging - pretty mode is better
*/
private formatStandard;
/**
* Get level label with emoji for visual identification
* @llm-rule WHEN: Pretty or minimal formatting needs visual level indicators
* @llm-rule AVOID: In production structured logs - use level text instead
*/
private getLevelLabel;
/**
* Apply ANSI color codes for terminal output
* @llm-rule WHEN: Development mode or when terminal supports colors
* @llm-rule AVOID: In CI/CD or when colors not supported
*/
private applyColor;
/**
* Output to appropriate console method based on level
* @llm-rule WHEN: Final console output step
* @llm-rule AVOID: Always using console.log - different levels use different methods
*/
private outputToConsole;
/**
* Get numeric value for log level comparison
* @llm-rule WHEN: Comparing log levels for filtering
* @llm-rule AVOID: String comparison - numeric is more reliable
*/
private getLevelValue;
/**
* Check if this transport should log the given level
* @llm-rule WHEN: Logger asks if transport handles this level
* @llm-rule AVOID: Complex level logic - simple comparison is sufficient
*/
shouldLog(level: string, configLevel: string): boolean;
/**
* Flush pending logs (no-op for console - immediate output)
* @llm-rule WHEN: Logger cleanup or app shutdown
* @llm-rule AVOID: Expecting async behavior - console writes immediately
*/
flush(): Promise<void>;
/**
* Close transport (no-op for console - no resources to cleanup)
* @llm-rule WHEN: Logger shutdown or transport cleanup
* @llm-rule AVOID: Expecting cleanup behavior - console has no resources
*/
close(): Promise<void>;
}
//# sourceMappingURL=console.d.ts.map