前言

Koa2真的是个很轻量的框架,轻量到路由都作为了模块单独了出来,Koa2也没有日志功能,如果我们需要有一些请求的日志和时间,我们就需要引入日志中间件

下面话不多说了,来一起看看详细的介绍吧

引入时间格式化库MomentJS

安装MomentJS

npm install moment --save

简单格式化时间

使用YYYY-MM-DD HH:MM:SS代表 年-月-日 时-分-秒(24小时制)

 console.log(Moment().format('YYYY-MM-DD HH:MM:SS'));

输出

2019-05-01 20:05:95

使用Koa2日志中间件

安装koa-logger

npm install koa-logger --save

如果需要使用TS,需要安装TS类型声明

npm install @types/koa-logger --save

简单使用koa-logger

const Koa = require("koa");    
const Koa_Logger = require("koa-logger");   // 日志中间件
const Koa_Router = require("koa-router");

// 实例化
const app = new Koa();    
const logger = Koa_Logger(); 
const router = new Koa_Router();

router.get("/",async (ctx)=>{
 ctx.body = "Hellow Koa";
});

// 使用中间件 
app.use(logger);     // 日志输出

app.use(router.routes());    // 路由

// 启动app
app.listen(3000);     // 设置监听端口
// 启动标识
console.log("Koa运行在:http://127.0.0.1:3000"); 

访问http://localhost:3000/,页面显示

控制台输出

给请求日志添加时间

改变一下logger的调用方式,加入moment格式化后的时间

const Koa = require("koa");        
const Koa_Logger = require("koa-logger");     // 日志中间件
const Koa_Router = require("koa-router");
const Moment = require("moment");
// 实例化
const app = new Koa();        
const logger = Koa_Logger((str) => {    // 使用日志中间件
 console.log(Moment().format('YYYY-MM-DD HH:MM:SS') str);
});  
const router = new Koa_Router();

router.get("/",async (ctx)=>{
 ctx.body = "Hellow Koa";
});

// 使用中间件  
app.use(logger);         // 日志输出

app.use(router.routes());       // 路由

// 启动app
app.listen(3000);         // 设置监听端口
// 启动标识
console.log("Koa运行在:http://127.0.0.1:3000"); 

分别访问http://localhost:3000/
、http://localhost:3000/?test

控制台输出如下

这样我们就有了一个带时间的请求日志了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对Devmax的支持。

Node.js中Koa2在控制台输出请求日志的方法示例的更多相关文章

  1. ios – 如何将PhoneGap调试控制台与CLI集成?

    我需要在config.xml中添加任何内容吗?

  2. 无法使用xCode 4.4启动控制台应用程序

    我有一个包含两个目标的项目–一个iOS应用程序和一个OSX控制台应用程序.后者是使用XcodeFile->NewTarget并选择“CommandLineTool”创建的.此控制台应用程序用于准备iOS应用程序所需的默认数据库–使用CoreData.这一直很好,直到我升级到MountainLion和xCode4.4.现在,当我尝试运行命令行工具时,我收到“无法启动–权限被拒绝”错误.我试过玩签名证

  3. 使用XCode进行调试时如何生成SIGINT?

    我的控制台应用程序捕获SIGINT,以便它可以正常退出.但是,在调试程序时按XCode中的CTRLC无效.我可以找到进程并使用终端窗口向我的进程发送SIGINT,但是我希望有一个更简单的解决方案,我可以在XCode中完成.解决方法调试器控制台的暂停按钮实际上会向您的应用发送SIGINT.如果您想让调试器将信号传递给您的应用程序,您可以执行以下操作:>按调试器的暂停按钮,等待调试控制台获得焦点>键入

  4. ios – 从应用程序扩展打印到控制台

    我一直在玩iOS8中的新自定义键盘应用程序扩展API,使用Swift作为我的首选语言.然而,我注意到的一件事是,println似乎并没有向控制台输出任何输出,大概是因为这些语句是在应用程序扩展中执行而不是包含应用程序.有没有人找到一种方法从应用程序扩展中将语句打印到控制台?

  5. 为什么Xcode 8(iOS 10)在控制台中打印[LogMessageLogging]

    为什么Xcode8打印[LogMessageLogging]在控制台中,当我调用地图视图时?任何人都可以提出一些建议吗?解决方法PrivacyTheunifiedloggingsystemconsidersdynamicstringsandcomplexdynamicobjectstobeprivate,anddoesnotcollectthemautomatically.Toensuretheprivacyofusers,itisrecommendedthatlogmessagesconsiststri

  6. ios – 如何使用lldb expr(DEBUGGING控制台)在运行时设置UIView的框架

    我正在尝试以下方法我越来越我正在使用XCode6.1,LLDB版本lldb-320.4.152解决方法好的,这是一种有效的方法

  7. Xcode控制台中的“Some”关键字是什么意思?

    打印对象的描述会使lldb在对象的描述前面使用关键字“Some”:这个关键字是什么意思;为什么会这样?解决方法Optional是包含两个案例的枚举,none和some:如您所见,Optional可以具有Some值,具有关联值或None.Optional.None实际上是nil的意思.在这种情况下,调试器告诉您someString是一个Optional(a.k.a.String?),其值为Optional.some.它不是Optional.None,因此它不是零.在Swift3之前,这些案例都是大写的,So

  8. Swift学习笔记五——在Background中启用控制台Console Output模式

    在之前的介绍中可以知道,使用Xcode中的background来学习Swift是非常强大的,可以在右侧的界面中实时预览代码中的所有常量或者变量的值,非常方便。但是现在我们学习的Swift应该作为一种控制台程序出现,就像初学C,OC一样。所有代码的打印结果都可以在Console控制台中显示,以区别之前的所有参数值都显示在一起的情况。但是默认打开Background是没有所谓的控制台的。下面简述打开Background的方法。打开Xcode,选择View-->AssistantEditor-->ShowAss

  9. Swift 2.0学习笔记Day4——用Playground工具编写Swift

    Playground程序运行①区域是代码编写视图;②区域是运行结果视图;③区域是时间轴视图;④区域是控制台视图,使用print等日志函数将结果输出到控制台,可以通过左下角的按钮隐藏和显示控制台。默认情况下时间轴视图是不显示的,可以通过助手编辑器打开Playground时间轴视图。欢迎关注关东升新浪微博@tony_关东升。

  10. 《从零开始学Swift》学习笔记Day4――用Playground工具编写Swift

    Playground程序运行①区域是代码编写视图;②区域是运行结果视图;③区域是时间轴视图;④区域是控制台视图,使用print等日志函数将结果输出到控制台,可以通过左下角的按钮隐藏和显示控制台。默认情况下时间轴视图是不显示的,可以通过助手编辑器打开Playground时间轴视图。欢迎关注关东升新浪微博@tony_关东升。

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部