課題
特に意識してなかったのですが、下記のように書いて、ログを出力すると、
index.js
const log4js = require('log4js');
const logger = log4js.getLogger();
logger.level = "debug";
logger.debug("hoge");
日付と時間の間にTが入っています。まあ、大した問題ではないのですが、ログの加工をするときに邪魔なので消したい。
[2018-05-12T17:24:17.873] [DEBUG] default - hoge
これは標準で、ISO8601が適用されているから・・・だそうです。
直す方法
log4js.configure()にてフォーマットを設定してやる必要があるようです。
index.js
const log4js = require('log4js');
const logger = log4js.getLogger();
//指定
log4js.configure({
appenders: {
out: {
type: 'stdout', //コンソールに出力
layout: {
type: 'pattern',
pattern: '%[[%d{yyyy-MM-dd hh:mm:ss.SSS}] [%p] %c -%] %m',
}
}
},
categories: {
default: {
appenders: ['out'],
level: 'debug'
}
}
});
logger.level = "debug";
logger.debug("hoge");
そうするとTが消えました。
[2018-05-12 17:30:19.122] [DEBUG] default - hoge
fileに出力する時
ファイルに出力するときは、カラーブロック設定 %[ %]に意味がないので(たぶん)消します。
"pattern": "[%d{yyyy-MM-dd hh:mm:ss.SSS}] [%p] %c %m"
参考
パターン含めたlog4jsの利用方法はここが非常に参考になります。