@dharshansr/gitgenius
Version:
AI-powered commit message generator with enhanced features
89 lines • 2.23 kB
TypeScript
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'trace';
export interface LogEntry {
timestamp: string;
level: LogLevel;
category: string;
message: string;
metadata?: any;
stack?: string;
}
export interface LoggerConfig {
level: LogLevel;
enableConsole: boolean;
enableFile: boolean;
logDir: string;
maxFileSize: number;
maxFiles: number;
prettyPrint: boolean;
}
export declare class Logger {
private static instance;
private config;
private logFilePath;
private readonly levels;
private constructor();
static getInstance(): Logger;
/**
* Get log level from environment variables
*/
private getLogLevelFromEnv;
/**
* Check if logs should be rotated
*/
private rotateLogsIfNeeded;
/**
* Rotate log files
*/
private rotateLogs;
/**
* Check if a log level should be logged
*/
private shouldLog;
/**
* Write log entry to file
*/
private writeToFile;
/**
* Format log entry for console output
*/
private formatForConsole;
/**
* Core log method
*/
private log;
/**
* Public logging methods
*/
trace(category: string, message: string, metadata?: any): void;
debug(category: string, message: string, metadata?: any): void;
info(category: string, message: string, metadata?: any): void;
warn(category: string, message: string, metadata?: any): void;
error(category: string, message: string, error?: Error, metadata?: any): void;
/**
* Configuration methods
*/
setLogLevel(level: LogLevel): void;
getLogLevel(): LogLevel;
enableFileLogging(enable: boolean): void;
enableConsoleLogging(enable: boolean): void;
getLogFilePath(): string;
getLogDir(): string;
/**
* Get recent logs from file
*/
getRecentLogs(lines?: number): LogEntry[];
/**
* Clear all logs
*/
clearLogs(): void;
/**
* Get log statistics
*/
getLogStats(): {
totalLogs: number;
byLevel: Record<string, number>;
fileSize: number;
};
}
export declare const logger: Logger;
//# sourceMappingURL=Logger.d.ts.map