node-logger-light
Version:
An advanced logging library for Node.js with support for different log levels, file logging, and external services integration.
47 lines (36 loc) • 1.06 kB
text/typescript
import winston from 'winston';
import { ConsoleTransport } from './transports/ConsoleTransport';
import { FileTransport } from './transports/FileTransport';
interface LoggerOptions {
logLevel: 'info' | 'warn' | 'error' | 'debug';
logToFile: boolean;
filePath?: string;
}
export class Logger {
private logger: winston.Logger;
constructor(options: LoggerOptions) {
const transports: winston.transport[] = [new ConsoleTransport(options.logLevel)];
if (options.logToFile && options.filePath) {
transports.push(new FileTransport(options.filePath, options.logLevel));
}
this.logger = winston.createLogger({
level: options.logLevel,
transports,
});
}
log(level: 'info' | 'warn' | 'error' | 'debug', message: string) {
this.logger.log(level, message);
}
info(message: string) {
this.log('info', message);
}
warn(message: string) {
this.log('warn', message);
}
error(message: string) {
this.log('error', message);
}
debug(message: string) {
this.log('debug', message);
}
}