javascriptでログの出力をカスタマイズする

typescriptでコンソールログを出力する際に発生した日付などを出力する処理を紹介します

下記は「[YYYY-MM-DD hh:mm:ss]ログ内容」の形式で出力したい場合のサンプルです(日付のフォーマットのためにdayjsを利用しています)

const default_format = "YYYY-MM-DD hh:mm:ss";
const defaultLogger = console.log.bind(console);
console.log = (...args) => {
  defaultLogger(`[dayjs().format(default_format)}]`, ...args);
};

const warnLogger = console.warn.bind(console);
console.warn = (...args) => {
  warnLogger(`[${dayjs().format(default_format)}]`, ...args);
};

const errorLogger = console.error.bind(console);
console.error = (...args) => {
  errorLogger(`[${dayjs().format(default_format)}]`, ...args);
};

ログレベルごとにbindを利用してconsole.logなどの出力処理を出力したいようにカスタマイズしています。
これを利用することでログレベルごとに出し分けたり、エラーログの色を付けたりすることができます。

おまけ)ログに色を付ける

色を付ける場合にはconsole.logなどの関数に色を指定するようにします

varred='\u001b[31m';
const default_format = "YYYY-MM-DD hh:mm:ss";
const errorLogger = console.error.bind(console);
console.error = (...args) => {
  errorLogger(red+ `${args}`));
};