express框架日志处理组件morgan
morgan是express默认的日志中间件,通过插拔方式引入express框架中,本文将从以下几方面内容展开。
- 日志控制台显示
// 安装包
$npm install express morgan -s
var express = require('express');
var app = express();
var morgan = require('morgan');app.use(morgan('short'));
app.use(function(req, res, next){res.send('ok');
});app.listen(3000);$node basic.js
::ffff:127.0.0.1 - GET / HTTP/1.1 304 - - 3.019 ms
::ffff:127.0.0.1 - GET /favicon.ico HTTP/1.1 200 2 - 0.984 ms
- 日志文件保存
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), {flags: 'a'});
app.use(morgan('short', {stream: accessLogStream}));
- API介绍
morgan(format, options) 返回express的中间件
参数说明:
format:可选,morgan与定义了几种日志格式,每种格式都有对应的名称,比如combined、short等,默认是default
options:可选,配置项,包含stream(常用)、skip、immediate
stream:日志的输出流配置,默认是process.stdout
skip:是否跳过日志记录
morgan('combined', {skip: function (req, res) { return res.statusCode < 400 }
})
immediate:布尔值,默认是false。当为true时,一收到请求,就记录日志;如果为false,则在请求返回后,再记录日志
自定义fromt
var express = require('express');
var app = express();
var morgan = require('morgan');morgan.format('joke', '[joke] :method :url :status');app.use(morgan('joke'));app.use(function(req, res, next){res.send('ok');
});app.listen(3000);
自定义token
var express = require('express');
var app = express();
var morgan = require('morgan');// 自定义token
morgan.token('from', function(req, res){return req.query.from || '-';
});// 自定义format,其中包含自定义的token
morgan.format('joke', '[joke] :method :url :status :from');// 使用自定义的format
app.use(morgan('joke'));app.use(function(req, res, next){res.send('ok');
});app.listen(3000);
- 日志切割
var FileStreamRotator = require('file-stream-rotator')
var express = require('express')
var fs = require('fs')
var morgan = require('morgan')
var path = require('path')var app = express()
var logDirectory = path.join(__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: path.join(logDirectory, 'access-%DATE%.log'),frequency: 'daily',verbose: false
})// setup the logger
app.use(morgan('combined', {stream: accessLogStream}))app.get('/', function (req, res) {res.send('hello, world!')
})
- 日志数据库存储
待续
express框架日志处理组件morgan相关推荐
- node、express框架
前面的话 Express是一个简洁.灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助开发者创建各种 Web 和移动设备应用.本文将详细介绍express框架 概述 官网对E ...
- NodeJS,EXpress框架的一知半解
一,什么是nodejs node.js是一个基于chrome V8引擎的JavaScript运行环境 (node.js并不是一门新的语言) 二.node.js的特点 1.事件驱动 2.非阻塞I/O 3 ...
- node.js Express框架入门
一.为什么要用Express框架? Node.js由于不需要另外的HTTP服务器,因此减少了一层抽象,给性能带了不少的提升,同时也因此提高了开发难度,实现一个POST数据的表单,例如: <for ...
- Golang高性能日志库zap + lumberjack 日志切割组件详解
文章篇幅较长,可以先收藏防止迷路~ 目录 zap日志库 1. why zap? 2. 简单使用 3. 自定义logger例子 4. Gin项目使用zap 6. lumberjack 日志切割组件 za ...
- 使用实例展示Express框架app函数的详解
0.Express框架简介 Express是Node.js中最受欢迎的Web应用程序框架之一.Express提供了许多有用的功能,使开发Web应用程序变得更加容易和高效. 以下是Express框架的一 ...
- 浅谈express框架
目录 express 安装express和使用 使用express创建一个简单的服务器 中间件分类 express.static()中间件处理逻辑: 使用express封装一个商品接口 => g ...
- Java日志框架日志门面介绍
文章目录 一.日志 二.常见日志框架 历史 各大框架介绍 JUL Log4j(1999-2015) Logback(2006-?) Log4j2 Logback与Log4j2对比 三.日志门面 什么是 ...
- express框架在nodejs中的使用+解决跨域问题(cors三方库)
第一部分commonJS使用第三方框架 一.托管静态资源(让用户直接访问静态资源) 例如,如上url分别是请求一张图片,一份样式文件,一份js代码.我们实现的web服务器需要能够直接返回这些文件的内容 ...
- Node.js学习笔记(七)#Express框架
目录 一.Express框架简介 二.安装和使用 1.安装 2.用express创建基本Web服务器 三.Express路由 1.路由概念 2.创建基本路由 ①.创建一个简单的get路由 ② 创建一个 ...
最新文章
- Spring Cloud开发实践 - 04 - Docker部署
- 《Adobe After Effects CS6完全剖析》——动画:最重要的是关系
- 最强鸿蒙系统txt_鸿蒙系统升级时间确认,哪些手机有望成为首批“宠儿”?
- aspose excel中文文档_Excel实战技巧,如何将阿拉伯数字快速转换为中文大小写格式?...
- AutoCAD DWG,DXF文件导出高清图片、PDF
- 合工大离散数学实验 油管实验
- 201609-2 python CCF 更简单的思路和代码 100分
- 【转】SLAM 论文阅读和分类整理
- xposed 框架学习
- 首届Starcoin Move黑客松源码分析——Atlaspad
- python矩阵乘法 点乘_Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
- 词云可视化——四行代码轻松上手
- php基于cookie的注册,关于php:如何为注册页面设置Cookie?
- Windows:MULTIPROCESSOR CONFIGURATION NOT SUPPORTED蓝屏(32位(win10/LTSC 2019/LTSC 2021))
- 上职高学计算机可以考师范大学吗,职业高中也可以考大学,你知道吗?
- android 代码混淆
- 上海踩踏事件所想,莫把应急预案当摆设
- IDEA Maven工程出现org.codehaus.plexus.component.repository.exception.ComponentLookupException错误
- 千里送人头 ——APIO2017 游记
- 域名怎么解析到服务器上