UNPKG

@telstra/core

Version:
44 lines (43 loc) 1.3 kB
import winston from 'winston'; /** * A logger implementation that uses Winston. * * @remarks * This logger provides a consistent way to log messages * across different levels (error, warn, info, debug) using Winston. */ export class Logger { logger; className = ''; /** * Creates a new `Logger` instance. * * @param options - Optional Winston logger options. */ constructor(options) { this.logger = winston.createLogger(options || { transports: [new winston.transports.Console()], format: winston.format.combine(winston.format.timestamp({ format: 'MM/DD/YYYY, h:mm:ss A' }), winston.format.printf(({ level, message, timestamp }) => { return `[TELSTRA] ${timestamp} - ${level.toUpperCase()} [${this.className}] ${message}`; })), }); } setClassName(className) { this.className = className; } log(level, message, meta) { this.logger.log(level, message, meta); } error(message, meta) { this.logger.error(message, meta); } warn(message, meta) { this.logger.warn(message, meta); } info(message, meta) { this.logger.info(message, meta); } debug(message, meta) { this.logger.debug(message, meta); } }