使用 morgan 中间件记录日志

Express 框架使用 morgan 中间件记录日志,而且在 app.js 文件中已经默认引入了该中间件 var logger = require('morgan');

使用 app.use(logger('dev')); 可以将请求信息打印在控制台,便于开发调试,但实际生产环境中,通常需要将日志记录在日志文件里,morgan (https://www.npmjs.com/package/morgan )的官方文档说明的非常详细。

  • 将所有的请求记录在单一的文件 access.log 中:
var express = require('express');
var fs = require('fs');
var logger = require('morgan');
 
var app = express();
 
// create a write stream (in append mode) 
var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'});
 
// setup the logger 
app.use(logger('combined', {stream: accessLogStream}));
 
app.get('/', function (req, res) {
    res.send('hello, world!');
});
  • 将所有的请求记录在 log/ 目录下按每日日期生成的文件中,需要使用 file-stream-rotator 模块:
var FileStreamRotator = require('file-stream-rotator');
var express = require('express');
var fs = require('fs');
var logger = require('morgan');
 
var app = express();
var logDirectory = __dirname + '/log';
 
// ensure log directory exists 
fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory);
 
// create a rotating write stream 
var accessLogStream = FileStreamRotator.getStream({
    date_format: 'YYYYMMDD',
    filename: logDirectory + '/%DATE%.log',
    frequency: 'daily',
    verbose: false
});
 
// setup the logger 
app.use(logger('combined', {stream: accessLogStream}));
 
app.get('/', function (req, res) {
    res.send('hello, world!');
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容