как сделать пользовательское ведение журнала в узле js

поэтому я делаю программу cli, и мне нужно было зарегистрировать временную метку рядом с зарегистрированной строкой, я использовал этот фрагмент кода:

var DEBUG = (function(){
  var timestamp = function(){};
  timestamp.toString = function(){
    return`[${new Date().getFullYear()+"-"+new Date().getMonth()+"-"+new Date().getDay()+" "+new Date().getHours()+":"+new Date().getMinutes()+":"+new Date().getSeconds() +":"+new Date().getMilliseconds()} ]`.red.bold;    
  };
  return {
      log : console.log.bind(console, '%s', timestamp    )
  }
})();

console = DEBUG 

это сработало хорошо, и он будет регистрировать что-то вроде этого

[2021-6-5 17:37:18:13 ] Привет, мир

то, что я хочу, это настроить его больше и добавить больше аргументов, например, если я хочу добавить идентификатор задачи:

let TaskID = 1 ; 
console.log(TaskID,"Hello World")

и это выйдет из системы

[2021-6-5 17:37:18:13 ][ID задачи : 1] Привет, мир

и так далее, надеюсь, вы поняли суть


person DUMBUSER    schedule 02.07.2021    source источник
comment
Почему бы не использовать что-то вроде log4js?   -  person Mureinik    schedule 02.07.2021
comment
поэтому log4js регистрирует отметку времени, но я не знаю, можете ли вы добавить пользовательские аргументы, я думаю, что есть только фатальные ошибки, отладка и еще пара   -  person DUMBUSER    schedule 02.07.2021


Ответы (1)


Не изменяйте поведение консоли по умолчанию. Вам нужно сделать что-то вроде этого:

function log(tid, m) {
    console.log(`[${new Date().getFullYear()+"-"+new Date().getMonth()+"-"+new Date().getDay()+" "+new Date().getHours()+":"+new Date().getMinutes()+":"+new Date().getSeconds() +":"+new Date().getMilliseconds()} ]`.red.bold + ' [Task ID: ' + tid + '] ' + m);
}
person Logan Devine    schedule 02.07.2021
comment
Спасибо, не знаю, почему я не подумал об этом - person DUMBUSER; 03.07.2021