Node.js の logger
どれ使えばいいのか良く分からない。
log4js を使えばいいのか。
適当にググったら winstone ってのを見つけたので試してみる。
var env = process.env.NODE_ENV || 'dev'; var winston = require('winston'); winston.setLevels(winston.config.syslog.levels) if (env !== 'dev') { winston.remove(winston.transports.Console); } var customColors = { trace: 'white', debug: 'green', info: 'green', warn: 'yellow', crit: 'red', fatal: 'red' }; var logger = new (winston.Logger)({ colors: customColors, levels: { trace: 0, debug: 1, info: 2, warn: 3, crit: 4, fatal: 5 }, transports: [ // Console. new (winston.transports.Console)({ level: 'trace', colorize: true, timestamp: true }), // File. new (winston.transports.File)({ filename: './logs/node.log', level: 'info', timestamp: true, json: false, maxsize: 100000, maxFiles: 5, }) ] }); winston.addColors(customColors); module.exports = logger;
app.js
var logger = require('./logger'); logger.trace('trace'); logger.debug('debug'); logger.info('info'); logger.warn('warn'); logger.crit('crit'); logger.fatal('crit');
$ node app.js 2014-07-23T15:48:33.023Z - trace: trace 2014-07-23T15:48:33.026Z - debug: debug 2014-07-23T15:48:33.027Z - info: info 2014-07-23T15:48:33.027Z - warn: warn 2014-07-23T15:48:33.028Z - crit: crit 2014-07-23T15:48:33.028Z - fatal: crit
trace とか debug の文字の所に色が付いて表示された。
logs/node.log にもちゃんとログが出力された。
時間が +9:00 されてない感じがするが、とりあえずこれを使ってみよう。