Node.js使用console输出日志文件步骤详解

这次给大家带来Node.js使用console输出日志文件步骤详解,Node.js使用console输出日志文件的注意事项有哪些,下面就是实战案例,一起来看一下。

我们首先创建如下文件:

// index.jslet fs = require('fs');let options = {  flags: 'a',     // append模式  encoding: 'utf8',  // utf8编码};let stdout = fs.createWriteStream('./stdout.log', options);let stderr = fs.createWriteStream('./stderr.log', options);// 创建loggerlet logger = new console.Console(stdout, stderr);for (let i = 0; i < 100; i++) {  logger.log(`log message ${i}`);  logger.error(`err message ${i}`);}

登录后复制

在上面代码中,我们其实是创建了一个console.Console类的实例,该类需要指定两个参数,即标准输出流和标准错误输出流,正常情况下,实际上是对应了process.stdout和process.stderr,以上的代码中,我们将这两个输出流改为了文件输出流,并指定为文件追加模式,这样即可将日志信息输出到指定的文件中去。运行上面的代码,会生成stdout.log和stderr.log两个文件。

stdout.log文件内容如下:

log message 0log message 1log message 2log message 3log message 4log message 5log message 6log message 7log message 8log message 9log message 10...

登录后复制

stderr.log文件内容如下:

err message 0err message 1err message 2err message 3err message 4err message 5err message 6err message 7err message 8err message 9err message 10...

登录后复制

看上去信息还比较简单,不像是日志文件的样子,我们或许得为每条日志添加一个时间才行,下面先为Date对象添加一个format的原型方法:

// 添加format方法Date.prototype.format = function (format) {  if (!format) {    format = 'yyyy-MM-dd HH:mm:ss';  }    // 用0补齐指定位数  let padNum = function (value, digits) {    return Array(digits - value.toString().length + 1).join('0') + value;  };  // 指定格式字符  let cfg = {    yyyy: this.getFullYear(),             // 年    MM: padNum(this.getMonth() + 1, 2),        // 月    dd: padNum(this.getDate(), 2),           // 日    HH: padNum(this.getHours(), 2),          // 时    mm: padNum(this.getMinutes(), 2),         // 分    ss: padNum(this.getSeconds(), 2),         // 秒    fff: padNum(this.getMilliseconds(), 3),      // 毫秒  };  return format.replace(/([a-z]|[A-Z])()*/ig, function (m) {    return cfg[m];  });}

登录后复制

然后再改写前面的主文件:

// index.jslet fs = require('fs');let options = {  flags: 'a',     // append模式  encoding: 'utf8',  // utf8编码};let stdout = fs.createWriteStream('./stdout.log', options);let stderr = fs.createWriteStream('./stderr.log', options);// 创建loggerlet logger = new console.Console(stdout, stderr);// 添加format方法Date.prototype.format = function (format) {  if (!format) {    format = 'yyyy-MM-dd HH:mm:ss';  }    // 用0补齐指定位数  let padNum = function (value, digits) {    return Array(digits - value.toString().length + 1).join('0') + value;  };  // 指定格式字符  let cfg = {    yyyy: this.getFullYear(),             // 年    MM: padNum(this.getMonth() + 1, 2),        // 月    dd: padNum(this.getDate(), 2),           // 日    HH: padNum(this.getHours(), 2),          // 时    mm: padNum(this.getMinutes(), 2),         // 分    ss: padNum(this.getSeconds(), 2),         // 秒    fff: padNum(this.getMilliseconds(), 3),      // 毫秒  };  return format.replace(/([a-z]|[A-Z])()*/ig, function (m) {    return cfg[m];  });}for (let i = 0; i < 100; i++) {  let time = new Date().format('yyyy-MM-dd HH:mm:ss.fff');  logger.log(`[${time}] - log message ${i}`);  logger.error(`[${time}] - err message ${i}`);}

登录后复制

重新运行程序,然后查看两个日志文件的内容。

stdout.log内容如下:

[2018-04-27 07:30:54.309] - log message 0[2018-04-27 07:30:54.312] - log message 1[2018-04-27 07:30:54.312] - log message 2[2018-04-27 07:30:54.312] - log message 3[2018-04-27 07:30:54.312] - log message 4[2018-04-27 07:30:54.312] - log message 5[2018-04-27 07:30:54.312] - log message 6[2018-04-27 07:30:54.312] - log message 7[2018-04-27 07:30:54.312] - log message 8[2018-04-27 07:30:54.312] - log message 9[2018-04-27 07:30:54.312] - log message 10...

登录后复制

stderr.log内容如下:

[2018-04-27 07:30:54.309] - err message 0[2018-04-27 07:30:54.312] - err message 1[2018-04-27 07:30:54.312] - err message 2[2018-04-27 07:30:54.312] - err message 3[2018-04-27 07:30:54.312] - err message 4[2018-04-27 07:30:54.312] - err message 5[2018-04-27 07:30:54.312] - err message 6[2018-04-27 07:30:54.312] - err message 7[2018-04-27 07:30:54.312] - err message 8[2018-04-27 07:30:54.312] - err message 9[2018-04-27 07:30:54.312] - err message 10...

登录后复制

这样一个简单的日志输出就完成了。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue nextTick 机制使用详解

vue+jquery+lodash滑动时顶部悬浮固定功能实现详解

以上就是Node.js使用console输出日志文件步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2761582.html

(0)
上一篇 2025年3月8日 09:36:50
下一篇 2025年2月18日 06:08:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Javascript的console[”]10种输入方法总结

    这次给大家带来Javascript的console[”]6种输入方法总结,Javascript的console[”]6种输入方法总结的注意事项有哪些,下面就是实战案例,一起来看一下。 1、console.log是最常…

    2025年3月8日 编程技术
    200
  • r.js合并压缩css文件步骤详解

    这次给大家带来r.js合并压缩css文件步骤详解,r.js合并压缩css文件的注意事项有哪些,下面就是实战案例,一起来看一下。 如何使用r.js来合并压缩css文件。在r5下新建一个css文件夹,里面有四个css文件:main.css、na…

    2025年3月8日
    200
  • JS设计模式中链式调用使用解析

    这次给大家带来JS设计模式中链式调用使用解析,JS设计模式中链式调用使用的注意事项有哪些,下面就是实战案例,一起来看一下。 写过jquery的可能都知道,jquery里面可以很方便的使用以下代码: // 不使用链式调用const eleme…

    编程技术 2025年3月8日
    200
  • JS实现微信红包随机算法(附代码)

    这次给大家带来js实现微信红包随机算法(附代码),js实现微信红包随机算法的注意事项有哪些,下面就是实战案例,一起来看一下。 我们假设有一个100元的红包,要发给10个人。为了保证公平,算法需要保证以下的原则: 每个人最少能抢到0.01元 …

    2025年3月8日
    200
  • vue 组件使用中的一些细节点_vue.js

    这篇文章主要介绍了vue 组件使用中的一些细节点,大概有两大细节点,本文通过基础实例给大家介绍的非常详细,需要的朋友参考下吧 细节一 基础例子 运行结果: 以上大家都懂,这边就不多说,回到代码里,有时候我们需要 tbody 里面每一行是一个…

    2025年3月8日 编程技术
    200
  • JavaScript的基本语法及变量讲解

    javascript的基本语法及变量的技术解答 1. 语法 JavaScript中是区分大小写的。 标识符,是指变量、函数或属性的名字,或者函数的参数。必须满足下面的规则:           第一个字符必须是一个字母,下划线(_)或者一个…

    编程技术 2025年3月8日
    200
  • JS中定义类的方法讲解

    JS中定义类的方式有很多种:  1、工厂方式    function Car(){    var ocar = new Object;    ocar.color = “blue”;    ocar.doors = 4;    ocar.s…

    编程技术 2025年3月8日
    200
  • js继承中的方法重写重点讲解

    1.面试中遇到的一道题,子类继承父类,父类有两个方法,重写其中一个方法。继承我是肯定是用组合方式继承,方法都是在原型上写的,重写的方法直接在子类的原型对象上写就ok了,因为对象的属性查找是按照原型链上就近原则的,先找到的方法就调用这个方法。…

    编程技术 2025年3月8日
    200
  • 重点分析JavaScript重写alert()方法的技巧

    重点分析JavaScript重写alert()方法的技巧 window.alert = function(str) {      var alertBox = document.createElement(“div”);      aler…

    编程技术 2025年3月8日
    200
  • js方法的重写和重载的技巧详解

    js的方法是不能重载的,js高级编程里面111页说明了原因,总结一下就是 js的方法可以写成这样: var func1 = function(){    console.log(“func1  test”);}123 登录后复制 这样的方法…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论