Custom Node JS logger class with Winston package
- 2022年8月09日
- 技術情報
Today I would like to share a custom Node JS logger Class using winston package. Let’s take a look.
const winston = require('winston')
nowDate = () => {return new Date(Date.now()).toUTCString()}
class CustomLogger {
  constructor() {
    
    this.logData = null
    const logger = winston.createLogger({
      transports: [
        new winston.transports.Console(),
        new winston.transports.File({
          filename: `./logs/debug.log`
        })
      ],
      format: winston.format.printf((info) => {
        let message = `${nowDate()} | ${info.level.toUpperCase()} | debug.log | ${info.message} | `
        message = info.data ? message + `data:${JSON.stringify(info.data)} | ` : message
        message = this.logData ? message + `logData:${JSON.stringify(this.logData)} | ` : message
        return message
      })
   });
   this.logger = logger
}
setLogData(logData) {
  this.logData = logData
}
async info(message) {
  this.logger.log('info', message);
}
async info(message, data) {
  this.logger.log('info', message, {
    data
  })
}
async debug(message) {
  this.logger.log('debug', message);
}
async debug(message, data) {
  this.logger.log('debug', message, {
    data
  })
}
async error(message) {
  this.logger.log('error', message);
}
async error(message, data) {
  this.logger.log('error', message, {
    data
  })
}
}
module.exports = CustomLoggerThe logger class is as above. It is very simple to use. Just call the class and instantiate the class as follows.
const Logger = require('./customLogger')
const logger = new Logger()This is all for now. Hope you enjoy that.
By Asahi
waithaw at 2022年08月09日 10:00:00

 大人が楽しめるヒーリング絵本河童のカパと静かな森
大人が楽しめるヒーリング絵本河童のカパと静かな森 パワースポット 日本三大神滝布引の滝
パワースポット 日本三大神滝布引の滝 佐藤・広幸ドイツ魂
佐藤・広幸ドイツ魂 Himeji Castle姫路城
Himeji Castle姫路城 ボイドタイムお知らせアプリVoid Time 〜月を無視できない〜
ボイドタイムお知らせアプリVoid Time 〜月を無視できない〜 撮った写真をカレンダーに撮りカレ
撮った写真をカレンダーに撮りカレ ライブ壁紙竹田城ライブ壁紙
ライブ壁紙竹田城ライブ壁紙 赤ちゃんにっこりBaby+Smile
赤ちゃんにっこりBaby+Smile 電子書籍[for iPhone]ターラのアストロロジー
電子書籍[for iPhone]ターラのアストロロジー JSpreadsheet カラム設定Tips
									JSpreadsheet カラム設定Tips