Node.js 記錄處理 (1)

基本介紹

教學目標

透過 log4js 套件實作出每日的 API 存取記錄檔。

前置作業

  1. 完成 Node.js 套件安裝與設置。

套件安裝

1
2
$ npm install log4js --save
$ npm install express --save

使用教學

初始設定

log.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var log4js = require('log4js');  
log4js.configure({
appenders: [
{
type: 'console',
category: "console"
}, {
type: "dateFile",
filename: 'log',
pattern: " yyyy-MM-dd",
alwaysIncludePattern: true,
category: 'level'
}],
replaceConsole: true,
levels:{
level: 'INFO'
}
});
var logger = log4js.getLogger('level');
exports.logger = logger;
exports.use = function(app) {
app.use(log4js.connectLogger(logger, {level:'auto', format:':method :url'}));
}

server.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var express = require('express'); 
var app = express();

var router = express.Router();
app.use('/api/v1', router);
router.get('/user', function(req, res){
var data = {id: 1,name: "leoyeh"};
logger.info(JSON.stringify(data));
res.json(data);
});

var log = require('./log');
var logger = log.logger;
log.use(app);

var port = process.env.PORT || 8080;
app.listen(port);

啟動伺服器

1
$ sudo PORT=80 node server.js

開啟瀏覽器,在網址列輸入 http://127.0.0.1/api/v1/user

確認記錄檔

1
2
[2014-11-22 05:17:04.513] [INFO] level - {"id":1,"name":"leoyeh"}
[2014-11-22 05:17:04.541] [WARN] level - GET /api/v1/user

相關資源