码迷,mamicode.com
首页 > 其他好文 > 详细

Express的日志模块morgan

时间:2018-01-31 22:22:57      阅读:737      评论:0      收藏:0      [点我收藏+]

标签:name   amr   ogg   out   字符串表   ejs   日志格式   通过   抛出异常   

morgan 是nodejs的一个日志模块,由 express 团队维护。

这里通过示例简要介绍morgan模块在express中的应用,大部分示例直接来自于。
morgan的文档:https://github.com/expressjs/morgan

1). 用法及参数
1.首先需要安装morgan模块:

npm install morgan --save

2.morgan的API:
morgan(format, options);
其中 format 表示日志的格式, morgan预定义了一些日志格式,用常量字符串表示,如’combined’, ‘common’, ‘short’, ‘dev’等;options表示选项,比如将日志输出到终端或者文件,这个参数是可选的。

format 为’combined’时的日志样例:

GET / 200 47.332 ms - 5137
GET /javascripts/jquery-2.1.4.min.js 304 12.931 ms 

ormat 为’short’时的日志样例:

GET /home HTTP/1.1 304 - - 3.345 ms

3.在app.js中添加

var logger = require(morgan);
const fs = require(fs);
const moment = require(moment);

// create a write stream (in append mode)


var accessLogStream = fs.createWriteStream(path.join(__dirname, access.log), {
    flags: a,  //   在该参数值中可以使用flag属性指定对该文件采取什么操作,默认值为‘r’(如果指定读取的文件不存在,则抛出异常)
    encoding: utf8  //使用encoding属性指定使用何种编码格式来读取该文件
})
  createWriteStream  //createWriteStream方法创建一个写入数据流对象,该对象的write方法用于写入数据,end方法用于结束写入操作。
// setup the logger 同时加载输出到终端和文件的morgan对象


app.use(logger(dev, {   
    stream: accessLogStream
}));

4 日志输出到文件,并按天轮转

var express = require('express');
var morgan = require('morgan');
var fs = require('fs');
var path =  require('path');
var fileStreamRotator = require('file-stream-rotator');
var app = express();
var logDir = path.join(__dirname, 'logs');
// ensure log directory exists
fs.existsSync(logDir) || fs.mkdirSync(logDir);
// create a rotating write stream
var accessLogStream = fileStreamRotator.getStream({
    date_format: 'YYYYMMDD',
    filename: path.join(logDir, 'access-%DATE%.log'),
    frequency: 'daily',
    verbose: true
});
app.use(morgan('common', {stream: accessLogStream}));
app.get('/to-rotate-file', function(req, res) {
    res.send('done!');
});
app.listen(3000);

注:参考文献 http://ju.outofmemory.cn/entry/277400

Express的日志模块morgan

标签:name   amr   ogg   out   字符串表   ejs   日志格式   通过   抛出异常   

原文地址:https://www.cnblogs.com/yu-hailong/p/8394833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!