安裝node.js 這裏就很少說 點擊 http://nodejs.cn/ 下載安裝。javascript
npm install -g express
npm install // 或者是用cnpm install 有使用yarn的直接 運行yarn
npm install log4js -D // 建議使用cnpm install log4js -D 或者使用 yarn add log4js
const log4js = require('log4js'); log4js.configure({ appenders: { // 從log4js 2.0版本之後 這裏從一個array變爲了json形式。 dateFileLog: { // 定義存儲爲文件形式日誌類型的名稱(名稱可隨意起) type: 'dateFile', filename: "./log/logs/logs", // 項目根目錄開始 pattern: "_yyyy-MM-dd_error.log", // 存儲的文件名稱爲 logs_yyyy-MM-dd_error.log(當天的日期) alwaysIncludePattern: true, //文件名是否始終包含佔位符 absolute: false //filename是否絕對路 }, logConLog: { // 定義在控制檯輸出的日誌類型的名稱 type: 'console' } }, categories: { // 這裏面的配置是什麼意思我也沒仔細看過文檔 default: { appenders: ['dateFileLog'], level: 'ALL' }, logConLog: { appenders: ['logConLog'], level: 'ALL' } } }); const dateFileLog = log4js.getLogger('dateFileLog'); // 能夠理解爲實例化一個日誌輸出對象吧 const logConLogs = log4js.getLogger('logConLog'); // 能夠理解爲實例化一個日誌輸出對象吧 exports.logger = dateFileLog; // 對外開發接口 在文件中輸出 exports.logs = logConLogs; // 對外開發接口 在控制檯輸出 exports.use = function (app) { // 對外開發接口 這裏在app.js中調用, 接管express在控制檯的輸出 app.use(log4js.connectLogger(logConLogs, { level: 'debug', // 他的等級我默認是DEBUG format: ':method :url' })); };
log4js在項目中的使用 java
/* 關於log4js的使用 */ /* 能夠在build文件夾下的www.js文件中實驗log4js */ /* 在你須要打印日誌的文件中引入log文件夾下的index.js */ // 這裏是引用時, 文件下有文件名稱爲index.js的時候 路徑直接寫到文件夾就能夠, node會本身去尋找下面的index.js中的內容 const log = require('./log'); const logs = log.logs; // logs是在控制檯輸出信息 const logger = log.logger // logger是在文件中輸出的信息(通常只輸出錯誤信息) // 引入進來之後再如下函數中 function onListening() { const addr = server.address(); const bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; debug('Listening on ' + bind); // logs.info('服務已啓動. 端口:' + port); // 這一句代碼在控制檯輸出使用的是哪一個端口 /* 在此處輸入如下代碼 */ logs.info('這是描述信息'); logs.debug('這是debug信息'); logs.error('這是錯誤信息'); logs.warn('這是警告信息'); // 能夠在控制檯中看到下面圖片中的日誌 }
/* 在app.js中引入log文件下的index.js */ /*這裏是引用時, 文件下有文件名稱爲index.js的時候 路徑直接寫到文件夾就能夠, node會本身去尋找下面的index.js中的內容*/ const log = require('./log'); const logs = log.logs; // logs是在控制檯輸出信息 // 在 const app = express();這一句後面使用咱們在log/index.js中暴露出來的use()方法 log.use(app) // 把 app 傳進去 這樣它就已經託管了express默認的日誌輸出 // 如今就能夠把express默認的日誌插件屏蔽掉了 屏蔽一下兩行代碼 const logger = require('morgan'); app.use(logger('dev')); // 尋找到下面代碼中添加一句 app.use(function (err, req, res, next) { logs.error(err); // 添加此句在控制檯輸出詳細的錯誤信息 // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); });