NodeJs中Express框架使用morgan中间件记录日志

Express中的app.js文件已经默认引入了该中间件var logger = require('morgan');

使用app.use(logger('dev'));可以将请求信息打印在控制台,便于开发调试,但实际生产环境中,需要将日志记录在log文件里,可以使用如下代码

var express = require('express');
var fs = require('fs');
var logger = require('morgan');var app = express();var accessLog = fs.createWriteStream('../access.log', {flags : 'a'});
var errorLog = fs.createWriteStream('../error.log', {flags : 'a'});app.use(logger('dev'));       //打印到控制台
app.use(logger('combined', {stream : accessLog}));        //打印到log日志

这样便可以将请求信息打印在根目录下的access.log文件中(注意文件路径别填错,并不会自动创建该文件)

参考链接:

https://www.npmjs.com/package/morgan

另还有log4js模块可以提供相似日志功能

参考链接:

http://blog.fens.me/nodejs-log4js/

morgan中间件记录日志相关推荐

  1. 006 - node.js

    006 - node.js 加解密算法 const crypto = require('crypto')let Encrypt = (data, key) => {const cipher = ...

  2. nodejs开发指南中,microblog微博系统的开发相关

    1. 安装ejs模板的命令有问题,安装不成功 因为在express3.X以下版本中, -t命令参数已经失效 express -t ejs microblog 需改成: express -e micro ...

  3. CMake搭建编译环境总结

    前言   交叉编译算是每个嵌入式开发者都会经历的一道坎吧,通俗的描述就是搭建Arm板代码编译环境,让代码能够在Arm板子上跑起来.常用到的编译工具为Makefile和CMake,本篇记录下CMake的 ...

  4. Express 4.x中间件morgan(logger)的详细解析

    开头先说写无关的话: 看了很多技术博客,最痛恨的就是那种拷贝粘贴党,要么就是那种原文翻译混乱党, 都是属于无脑型. 不仅如此,格式也是让人心生绝望.浪费了很多时间. 当然有些人写这些只是给自己记的笔记 ...

  5. redux异步action_React躬行记(12)——Redux中间件

    Redux的中间件(Middleware)遵循了即插即用的设计思想,出现在Action到达Reducer之前(如图10所示)的位置.中间件是一个固定模式的独立函数,当把多个中间件像管道那样串联在一起时 ...

  6. Express 入门

    用Express写一个hello world 程序,体验一下Express 开发.新建文件夹express,npm init -y 快速创建package.json, 再新建一个server.js 用 ...

  7. 带有Node,React和Redux 1的Retrogames库:服务器API和React前端

    2017/03/29 Update: Fixed the versions of react-router and react-hot-loader. 2017/03/20 Update: Webpa ...

  8. express-日志、开发环境、生产环境

    express-日志.开发环境.生产环境 为了记录在开发的过程以及项目使用过程中的操作,通常会使用日志记录用户操作 express脚手架搭建看这里 日志的使用 express-日志.开发环境.生产环境 ...

  9. cmd长ping记录日志和时间_Gin 框架系列 — 路由中间件:日志记录

    概述 首先同步下项目概况: 上篇文章分享了,规划项目目录和参数验证,其中参数验证使用的是 validator.v8 版本,现已更新到 validator.v9 版本,最新代码查看 github 即可. ...

最新文章

  1. react-redux中的connect
  2. java xml 验证工具_验证xml格式
  3. OpenCV亮度和对比度调整的实例(附完整代码)
  4. STM32F103构建固件库模板(PS固件库文件树介绍)
  5. 深入理解傅里叶变换的性质:实函数、卷积、相关、功率谱、频响函数
  6. Python之石头剪刀布
  7. 车牌识别程序python_车牌检测和识别的Python应用软件实现
  8. 怎么修复服务器未知主机,无法连接到ejabberd服务器:未知主机异常
  9. WCF集成COM+应用程序遇到的问题
  10. 微信公众号网页授权流程
  11. 从零开始的小白pr学习之旅--day2 数字后端流程(一)
  12. jeff dean_Jeff Dean的构建大型分布式系统的软件工程建议
  13. excel 画散点图 怎么设置图片的分辨率_有哪些相见恨晚的Excel图表制作方法?
  14. 【精讲】vue数据绑定、数据内容的应用、数据结构、数据代理
  15. 求学之路五、六月的Review
  16. 快剪辑剪辑视频1920*1080
  17. java-learning:32. ArrayList类应用
  18. 光耦使用教程——以4N25为例
  19. font-face 自定义字体
  20. Java 成员变量中有数组的情况处理

热门文章

  1. 网络流量监控“时间戳”的实际意义
  2. 如何使用nload实时监控网络带宽
  3. 目标检测算法——收藏|小目标检测解决方案(三)
  4. 用HTML5制作的3D相册
  5. 私募股权投资-沃尔玛案例分析
  6. nodejs-Sream
  7. 【数据结构】NOJ014 求广义表深度
  8. 贝叶斯推理:后验概率的更新
  9. 叉乘、点乘、矩阵变换
  10. ThinkInJava笔记