在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 第16章 增加日志功能
第9章 增加標(biāo)簽和標(biāo)簽頁(yè)面
番外篇之——使用 Mongoose
番外篇之——使用 Async
第4章 實(shí)現(xiàn)用戶頁(yè)面和文章頁(yè)面
第12章 增加友情鏈接
第14章 增加頭像
第7章 實(shí)現(xiàn)分頁(yè)功能
第5章 增加編輯與刪除功能
第11章 增加文章檢索功能
第3章 增加文件上傳功能
番外篇之——部署到 Heroku
第2章 使用 Markdown
第13章 增加404頁(yè)面
第16章 增加日志功能
第1章 一個(gè)簡(jiǎn)單的博客
番外篇之——使用 Handlebars
第10章 增加pv統(tǒng)計(jì)和留言統(tǒng)計(jì)
番外篇之——使用 Passport
第15章 增加轉(zhuǎn)載功能和轉(zhuǎn)載統(tǒng)計(jì)
第8章 增加存檔頁(yè)面
番外篇之——使用 generic pool
番外篇之——使用 _id 查詢
番外篇之——使用 Disqus
番外篇之——使用 KindEditor
第6章 實(shí)現(xiàn)留言功能

第16章 增加日志功能

現(xiàn)在我們來(lái)給博客增加日志,實(shí)現(xiàn)訪問(wèn)日志(access.log)和錯(cuò)誤日志(error.log)功能。

前面我們介紹過(guò),使用 Express 自帶的 logger 中間件實(shí)現(xiàn)了終端日志的輸出:

app.use(logger('dev'));

那我們想把日志保存為日志文件該怎么辦呢?很簡(jiǎn)單,我們只需在以上代碼的下一行添加:

app.use(logger({stream: accessLog}));

并在 var app = express(); 之前添加如下代碼即可:

var fs = require('fs');
var accessLog = fs.createWriteStream('access.log', {flags: 'a'});
var errorLog = fs.createWriteStream('error.log', {flags: 'a'});

這樣,我們每一次訪問(wèn)的請(qǐng)求信息,不僅顯示在了命令行中,也都保存在了工程根目錄下的 access.log 文件里。但 Express 并沒(méi)有提供記錄錯(cuò)誤日志的功能,所以我們需自己寫(xiě)一個(gè)簡(jiǎn)單的中間件,在 app.use(express.static(path.join(__dirname, 'public'))); 下一行添加如下代碼 :

app.use(function (err, req, res, next) {
  var meta = '[' + new Date() + '] ' + req.url + '\n';
  errorLog.write(meta + err.stack + '\n');
  next();
});

這樣,當(dāng)有錯(cuò)誤發(fā)生時(shí),就將錯(cuò)誤信息保存到了根目錄下的 error.log 文件夾里。

至此,我們就給博客添加了日志的功能。