在我的一個node express項目中,使用了log4js來生成日志並且保存到文件里,生成的文件如下:
文件名字叫:access.log 如果在配置log4js的時候允許了同時存在多個備份log文件,(比如我寫的是3個:backup:3)那么從時間最遠到最近,會生成access.log.3,
access.log.2,access.log.1,access.log

一、下載安裝log4js
在項目根目錄下命令行:
window:
npm install log4js
mac(sudo不是必需的,但是不帶sudo可能會遇到什么管理權限之類的莫名其妙的問題,所以我習慣mac里都帶sudo,下載過程中會要求輸入電腦密碼):
sudo npm install log4js
下載好了,現在我的項目結構如下:

其中app_simply.js是我的項目的運行文件,是我簡單的自己寫的一個項目運行文件,只有最基本的功能。不是通過express生成器自動生成的。
二、配置log4js
在app_simply.js中加入以下幾句:
var log4js = require('log4js');//加載log4js模塊 var express = require('express');
var path = require("path");
var app = express();
//通過configure()配置log4js log4js.configure({ appenders: [ {type: 'console'}, //控制台輸出 { type: 'file', //文件輸出 filename: 'logs/access.log',//輸出日志的文件夾/文件名,不會自動生成文件夾,請先自行創建logs文件夾 maxLogSize: 1024*12,//一個文件的大小,超出后會自動新生成一個文件 backups: 3,//備份的文件數量 category: 'normal' } ], replaceConsole: true });
var logger = log4js.getLogger('normal'); logger.setLevel('INFO');//設置輸出級別,具體輸出級別有6個,見下方說明 app.use(log4js.connectLogger(logger, {level: log4js.levels.INFO}));
app.get("/", function(req, res){
res.send("88888");
});
var server = app.listen(3001, function(){
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
log4js的輸出級別6個: 從低到高:trace, debug, info, warn, error, fatal
- logger.trace(‘Entering cheese testing’);
- logger.debug(‘Got cheese.’);
- logger.info(‘Cheese is Gouda.’);
- logger.warn(‘Cheese is quite smelly.’);
- logger.error(‘Cheese is too ripe!’);
- logger.fatal(‘Cheese was breeding ground for listeria.’);
輸出日志時,高於等於我們自己設置的等級的信息都會輸出,比如我設置的是info,到時候info, warn,error,fatal的信息都會輸出到文件中
然后跑起我們的服務器,就會生成日志啦!
