时间:2021-05-26
平常都使用console来打印 node 脚本执行时需要看到的信息,但这些信息也就只能在控制台查看。假如你希望将打印的信息输出到日志(log)文件查看的话,那就往下看看吧。
1、前言
期望:
需要了解的知识点:
fsnew console.Console2、什么是 fs
使用 node.js 对日志进行存储,就一定会对本地文件的增删改查,那么我们需要用到fs。
如果你写过 node,想必你应该见过它fs,fs全称为文件系统(File System)。文件系统简单来说就是通过 Node 来操作系统中的文件。
fs 不需要 npm install,node 中自带,直接引用即可:
const fs = require('fs');本文将会使用 fs 的fs.createWriteStream(path, options)方法,用于创建可读流,用法如下:
/** * @param1 path * @param2 options */let fs = require('fs');let ws = fs.createWriteStream('./1.txt',{ flags:'w'//文件的打开模式 ,mode:0o666//文件的权限设置 ,encoding:'utf8'//写入文件的字符的编码 ,highWaterMark:3//最高水位线 ,start:0 //写入文件的起始索引位置 ,autoClose:true//是否自动关闭文档})以此用于在日志记录后于本地生成日志文件。
3、new console.Console(stdout[, stderr][, ignoreErrors])
在 node.js 中 console 模块提供了基础的调试功能。使用很简单,常用的API主要有 console.log()、console.error()。
此外,可以基于Console类,方便的扩展出自己的console实例,比如把调试信息打印到文件里,而部署输出在控制台上。
const fs = require('fs');const file = fs.createWriteStream('./outPut.txt');let logger = new console.Console(file, file);// 调用logger.log('hello');此时,调用logger.log内容将会输出到 outPut.txt里,而不是打印到控制台。
4、node.js 生成日志文件方法
在了解完 node 的两个模块fs和console后,我们开始写这个简单而实用的方法,先创建 index.js
// index.jsconst fs = require('fs');let opions = { flags: 'a', // encoding: 'utf8', // utf8编码}let stderr = fs.createWriteStream('./a.log', options);// 创建loggerlet logger = new console.Console(stderr);// 真实项目中调用下面即可记录错误日志logger.log('这是一条日志1');logger.log('这是一条日志2');logger.log('这是一条日志3');打开终端执行node logger.js:
$ node index.js
此时根目录将会生成 a.log 文件
好了,最简易版的就这样完成了。但是当时在此执行node logger.js时,日志将会累加上去,这样会增加本地存储的负担。所以我希望的是每次执行的时候清空一下。
那就来改写一下 index.js, node.js 中改写依旧使用fs的方法fs.writeFile:
// 清空a.log内容fs.writeFile('./a.log', '', function (err) { if(err){ console.log(err); }});至此,我期望得到的日志文件就完成了。完整代码为:
const fs = require('fs');let options = { flags: 'a', // encoding: 'utf8', // utf8编码}let stderr = fs.createWriteStream('./a.log', options);// 创建loggerlet logger = new console.Console(stderr);fs.writeFile('./a.log', '', function (err) { if(err){ console.log(err); }});// 真实项目中调用下面即可记录错误日志logger.log('这是一条日志1');logger.log('这是一条日志2');logger.log('这是一条日志3');可以将此封装起来,然后在需要的地方去调用。logger.log('你需要记录的日志')即可。
5、其他
当然在此基础上你可以拓展其它内容,比如给日志中增加时间戳、区分日志类型储存等。
以上,如有问题或建议欢迎指正。
参考资料:
nodejs.cn/api/console…
nodejs.cn/api/fs.html
总结
以上所述是小编给大家介绍的Node.js 在本地生成日志文件的方法,希望对大家有所帮助!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在开始本文之前请确保安装好Redis和Node.js以及Node.js的Redis扩展——node_redis首先创建一个新文件夹并新建文本文件app.js文件
在开始本文之前请确保安装好Redis和Node.js以及Node.js的Redis扩展——node_redis首先创建一个新文件夹并新建文本文件app.js文件
本文实例讲述了node.js中fs文件系统模块的使用方法。分享给大家供大家参考,具体如下:node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,
什么是Node.js的模块(Module)?在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建了
前言Node.js是JavaScript的一个解析器,可以运行js文件,今天就是简单说一下如何使用Node.js下的request模块下载文件。1、reques