※「≈≈≈」は省略を表す
バージョン
$ node -v
v6.2.1
$ cat package.json
{
≈≈≈
"dependencies": {
"express": "~4.13.1",
"log4js": "^0.6.37",
≈≈≈
},
≈≈≈
}
log4jsの設定
$ mkdir modules
$ cat modules/logger.js
var log4js = require('log4js');
log4js.configure({
"appenders": [{
"category": "access",
"type": "dateFile",
"filename": "/var/log/nodejs/access.log",
"pattern": "-yyyy-MM-dd",
"backups": 3
},
{
"category": "system",
"type": "dateFile",
"filename": "/var/log/nodejs/system.log",
"pattern": "-yyyy-MM-dd",
"backups": 3
},
{
"category": "error",
"type": "dateFile",
"filename": "/var/log/nodejs/error.log",
"pattern": "-yyyy-MM-dd",
"backups": 3
},
{
"type": "console"
}],
"levels": {
"access": "ALL",
"system": "ALL",
"error": "ERROR"
}
});
module.exports = {
access: log4js.getLogger('access'),
system: log4js.getLogger('system'),
error: log4js.getLogger('error'),
express: log4js.connectLogger(log4js.getLogger('access'), {level: log4js.levels.INFO}),
isDebug: function(category) {
return (log4js.levels.DEBUG.level >= category.level.level);
}
};
app.js
$ cat app.js
≈≈≈
var logger = require('./modules/logger');
≈≈≈
app.use(logger.express);
≈≈≈
使い方
$ cat app.js
≈≈≈
var test = require('../routes/test');
≈≈≈
app.use('/', test);
≈≈≈
$ cat routes/test.js
var express = require('express');
var logger = require('../modules/logger');
var router = express.Router();
router.get('/', function(req, res, next) {
if(logger.isDebug(logger.system)) {
logger.system.debug("debugログは、DEBUGレベルの時だけ呼びたい。");
}
logger.error.error("errorじゃないけどね!");
}
module.exports = router;