Node.js 在本地生成日志文件的方法
平常都使用console来打印node脚本执行时需要看到的信息,但这些信息也就只能在控制台查看。假如你希望将打印的信息输出到日志(log)文件查看的话,那就往下看看吧。
1、前言
期望:
- 每次运行脚本时,生成log日志存储到本地
- 每次执行脚本,之前日志内容清空
需要了解的知识点:
fs newconsole.Console
2、什么是fs
使用node.js对日志进行存储,就一定会对本地文件的增删改查,那么我们需要用到fs。
如果你写过node,想必你应该见过它fs,fs全称为文件系统(FileSystem)。文件系统简单来说就是通过Node来操作系统中的文件。
fs不需要npminstall,node中自带,直接引用即可:
constfs=require('fs');
本文将会使用fs的fs.createWriteStream(path,options)方法,用于创建可读流,用法如下:
/** *@param1path *@param2options */ letfs=require('fs'); letws=fs.createWriteStream('./1.txt',{ flags:'w'//文件的打开模式 ,mode:0o666//文件的权限设置 ,encoding:'utf8'//写入文件的字符的编码 ,highWaterMark:3//最高水位线 ,start:0//写入文件的起始索引位置 ,autoClose:true//是否自动关闭文档 })
以此用于在日志记录后于本地生成日志文件。
3、newconsole.Console(stdout[,stderr][,ignoreErrors])
在node.js中console模块提供了基础的调试功能。使用很简单,常用的API主要有console.log()、console.error()。
此外,可以基于Console类,方便的扩展出自己的console实例,比如把调试信息打印到文件里,而部署输出在控制台上。
constfs=require('fs'); constfile=fs.createWriteStream('./outPut.txt'); letlogger=newconsole.Console(file,file); //调用 logger.log('hello');
此时,调用logger.log内容将会输出到outPut.txt里,而不是打印到控制台。
4、node.js生成日志文件方法
在了解完node的两个模块fs和console后,我们开始写这个简单而实用的方法,先创建index.js
//index.js constfs=require('fs'); letopions={ flags:'a',// encoding:'utf8',//utf8编码 } letstderr=fs.createWriteStream('./a.log',options); //创建logger letlogger=newconsole.Console(stderr); //真实项目中调用下面即可记录错误日志 logger.log('这是一条日志1'); logger.log('这是一条日志2'); logger.log('这是一条日志3');
打开终端执行nodelogger.js:
$nodeindex.js
此时根目录将会生成a.log文件
好了,最简易版的就这样完成了。但是当时在此执行nodelogger.js时,日志将会累加上去,这样会增加本地存储的负担。所以我希望的是每次执行的时候清空一下。
那就来改写一下index.js,node.js中改写依旧使用fs的方法fs.writeFile:
//清空a.log内容 fs.writeFile('./a.log','',function(err){ if(err){ console.log(err); } });
至此,我期望得到的日志文件就完成了。完整代码为:
constfs=require('fs'); letoptions={ flags:'a',// encoding:'utf8',//utf8编码 } letstderr=fs.createWriteStream('./a.log',options); //创建logger letlogger=newconsole.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在本地生成日志文件的方法,希望对大家有所帮助!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。