How can convert log file time in this format "23-May-17 12:05:37" in log4js package using node js

1.7k Views Asked by At

I am trying to change log time this date time format [2017-05-23 12:05:37.327] into this 23-May-17 12:05:37. I am using this package: https://www.npmjs.com/package/log4js

Here is file configuration of node4js.

     {
       "appenders": [
      {

        "type": "file",
       "filename": "logs/v_1_0_9.log",
       "maxLogSize":1073741824,
       "backups": 10,
       "pattern": "%d{dd/MM hh:mm} %-5p %m"

        "category": "logger"
        }
      ],
            "replaceConsole": true
      }

Output of my code

[2017-05-24 15:57:00.924] [INFO] logger - tetsting

but above output is not my expected.

Expected output here:

[23-May-17 12:05:37] [INFO] logger - tetsting

Please help Thanks in Advance.

1

There are 1 best solutions below

8
On BEST ANSWER

Here is a sloution:

const date = new Date('2017-05-23 12:05:37.327').toString('dd-MMM-yy hh:mm:ss')

EDIT: Sorry, here is a log4js solution:

var log4js = require('log4js');
var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];

log4js.configure({
  appenders: [{
    type: "console",
    layout: {
      type: "pattern",
      pattern: "%x{ln} %-5p %m",
      tokens: {
        ln: function (data) {
          const date = new Date();
          var day = date.getDate();
          var monthIndex = date.getMonth();
          var year = date.getFullYear();
          var hours = date.getHours();
          var minutes = date.getMinutes();
          var seconds = date.getSeconds();
          return day + '-' + monthNames[monthIndex] + '-' + year + ' ' + hours + ':' + minutes + ':'
            + seconds;
        }
      }
    }
  }],
});

var logger = log4js.getLogger('cheese');
logger.debug('test');

Output: 29-May-2017 14:39:4 DEBUG test

EDIT 2: conf.json:

{
  "appenders": [
    {
      "type": "console",
      "layout": {
        "type": "pattern",
        "pattern": "%x{ln} %-5p %m",
        "tokens": {}
      }
    }
  ]
}

logger.js:

var log4js = require('log4js');
var config = require('./conf.json')
var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];
config.appenders[0].layout.tokens.ln = function () {
  const date = new Date();
  var day = date.getDate();
  var monthIndex = date.getMonth();
  var year = date.getFullYear();
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var seconds = date.getSeconds();
  return day + '-' + monthNames[monthIndex] + '-' + year + ' ' + hours + ':' + minutes + ':'
    + seconds;
};
log4js.configure(config);

var logger = log4js.getLogger('cheese');
logger.debug('test');