console这个东西, 在浏览器里相信程序猿和程序媛都用过不少
在Nodejs也到处可见其身影
Nodejs中的console 模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
常见的使用套路:
常见用法
在开发过程,甚至生产环境中, 相信也不可避免的或多或少会用上它来做一下调试和显示
这时候有一种需求是希望这些输出能记录下来, 以方便的时候用来追溯程序运行时的一些参数和情况
那么其中一种简单做法就是把输出内容用管道”送”到日志文件里(以Linux里为例)
node demo-con.js > demo.log
然后保存好demo.log日志文件即可
下面来讲这期重点: 把console的输出如何重定向到我们指定的文件中, 最终弄成统一的日志调用方法
const fs = require("fs");
const { Console } = require('console');
const output = fs.createWriteStream('d:/stdout.log'); //定义输出位置和日志文件名
const errorOutput = fs.createWriteStream('d:/stderr.log'); //定义输出位置和错误日志文件名
const logger = new Console({ stdout: output, stderr: errorOutput });
1.引用fs, 用于文件流控制日志文件
2.创建具有一个或两个可写流实例的新 Console。 stdout 是一个可写流,用于打印日志或信息输出。 stderr 用于警告或错误输出。 如果未提供 stderr,则 stdout 用于 stderr
3.然后原来的console替换成logger, 像这样:
logger.log('可以这样');
再运行, 然后来看看日志文件的内容
成功输出到文件中
这个时候出现一个问题, 如果要在正式代码里使用, 那么每个Nodejs文件都可引用这5句话也太麻烦了, 我们来稍微”封装”一下, 以方便调用
新建一个logger.js
const fs = require("fs");
const { Console } = require('console');
const output = fs.createWriteStream('d:/stdout.log');
const errorOutput = fs.createWriteStream('d:/stderr.log');
const logger = new Console({ stdout: output, stderr: errorOutput });
logger.log(`start log on ${new Date()} `); //记录一下开始时间节点
module.exports = logger; //输出logger对象
改一下刚才用来测试的代码, 把前5行代替成一行(方便对比,先注释掉)
// const fs = require("fs");
// const { Console } = require('console');
// const output = fs.createWriteStream('d:/stdout.log'); //定义输出位置和日志文件名
// const errorOutput = fs.createWriteStream('d:/stderr.log'); //定义输出位置和错误日志文件名
// const logger = new Console({ stdout: output, stderr: errorOutput });
const logger = require("./logger");
为了方便确认修改成功, 改一个输出内容看看
logger.log('现在是Logger方式了');
运行通过
完整的代码
const logger = require("./logger");
logger.log('现在是Logger方式了');
logger.log('还可以', '这样');
let n = 'SL';
logger.log('%s, 你好', n);
let jo = {name: 'Zhang', age: 16};
logger.log("json对象:", jo);
logger.error(new Error('出错啦!'));
复杂的问题简单化
每次只关注一个知识点
对技术有兴趣的小伙伴可以关注我, 以后会经常分享各种奇奇怪怪又实用的技术知识
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/procedure/25972.html