@telstra/core
Version:
Telstra SDK Core
44 lines (43 loc) • 1.3 kB
JavaScript
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);
}
}