@sailboat-computer/data-storage
Version:
Shared data storage library for sailboat computer v3
113 lines (112 loc) • 2.62 kB
TypeScript
/**
* Logger utility for the data storage package
*/
/**
* Log level
*/
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
/**
* Logger interface
*/
export interface Logger {
/**
* Log a debug message
* @param message Message to log
* @param meta Additional metadata
*/
debug(message: string, meta?: any): void;
/**
* Log an info message
* @param message Message to log
* @param meta Additional metadata
*/
info(message: string, meta?: any): void;
/**
* Log a warning message
* @param message Message to log
* @param meta Additional metadata
*/
warn(message: string, meta?: any): void;
/**
* Log an error message
* @param message Message to log
* @param meta Additional metadata
*/
error(message: string, meta?: any): void;
}
/**
* Logger options
*/
export interface LoggerOptions {
/**
* Log level
* @default 'info'
*/
level?: LogLevel;
/**
* Whether to log to console
* @default true
*/
console?: boolean;
/**
* Whether to log to file
* @default false
*/
file?: boolean;
/**
* Path to log file
*/
filePath?: string;
}
/**
* Console logger implementation
*/
export declare class ConsoleLogger implements Logger {
private level;
private component;
private levelPriority;
/**
* Create a new console logger
* @param component Component name
* @param options Logger options
*/
constructor(component: string, options?: LoggerOptions);
/**
* Log a debug message
* @param message Message to log
* @param meta Additional metadata
*/
debug(message: string, meta?: any): void;
/**
* Log an info message
* @param message Message to log
* @param meta Additional metadata
*/
info(message: string, meta?: any): void;
/**
* Log a warning message
* @param message Message to log
* @param meta Additional metadata
*/
warn(message: string, meta?: any): void;
/**
* Log an error message
* @param message Message to log
* @param meta Additional metadata
*/
error(message: string, meta?: any): void;
/**
* Log a message
* @param level Log level
* @param message Message to log
* @param meta Additional metadata
*/
private log;
}
/**
* Create a new logger
* @param component Component name
* @param options Logger options
* @returns Logger
*/
export declare function createLogger(component: string, options?: LoggerOptions): Logger;