平常都使用<代码>控制台> 代码来打印节点脚本执行时需要看到的信息,但这些信息也就只能在控制台查看。假如你希望将打印的信息输出到日志(日志)文件查看的话,那就往下看看吧。
<强> 1,前言强>
期望:
-
<李>每次运行脚本时,生成日志日志存储到本地李>
<李>每次执行脚本,之前日志内容清空李>
需要了解的知识点:
fs 新的控制台。控制台
<强> 2,什么是fs 强>
使用节点。js对日志进行存储,就一定会对本地文件的增删改查,那么我们需要用到fs。
如果你写过节点,想必你应该见过它<代码> fs> 代码,fs全称为文件系统(文件系统)。文件系统简单来说就是<强>通过节点来操作系统中的文件强>。
fs不需要npm安装、节点中自带,直接引用即可:
const fs=要求(fs);
本文将会使用fs的<代码> fs。createWriteStream(路径,选项)代码>方法,用于创建可读流,用法如下:
/* * * @param1路径 * @param2选项 */让fs=要求(fs); 让ws=fs.createWriteStream (“。/1. txt”, { 国旗:‘w’//文件的打开模式 模式:0 o666//文件的权限设置 编码:“utf8 '//写入文件的字符的编码 highWaterMark: 3//最高水位线 开始:0//写入文件的起始索引位置 autoClose:真正的//是否自动关闭文档 })
以此用于在日志记录后于本地生成日志文件。
3,新控制台。控制台(stdout (stderr] [, ignoreErrors])
在节点。js中控制模块提供了基础的调试功能。使用很简单,常用的API的主要有console.log (), console.error ()。
此外,可以基于控制台类,方便的扩展出自己的控制台实例,比如把调试信息打印到文件里,而部署输出在控制台上。
const fs=要求(fs); 常量文件=fs.createWriteStream ('/outPut.txt。'); 让新控制台记录器=?刂铺?文件、文件);//调用 logger.log(“你好”);
此时,调用<代码>记录器。日志> 代码内容将会输出到outPut.txt里,而不是打印到控制台。
<强> 4节点。js生成日志文件方法强>
在了解完节点的两个模块<代码> fs 代码>和<代码>控制台代码>后,我们开始写这个简单而实用的方法,先创建index.js
//index.js const fs=要求(fs); 我们选择={ 国旗:' a ',//编码:use utf8,//utf8编码 } 让stderr=fs.createWriteStream (’。/H罩尽?选项);//创建记录器 让记录器=new console.Console (stderr);//真实项目中调用下面即可记录错误日志 logger.log(“这是一条日志1 '); logger.log(“这是一条日志2》); logger.log(“这是一条日志3 ');
打开终端执行<代码>节点logger.js 代码>:
<代码>节点美元index.js 代码>
此时根目录将会生成。日志文件
好了,最简易版的就这样完成了。但是当时在此执行<代码>节点logger.js> 代码时,日志将会累加上去,这样会增加本地存储的负担,所以我希望的是每次执行的时候清空一下。
那就来改写一下指数。js、节点。js中改写依旧使用<代码> fs> 代码的方法<代码> fs.writeFile 代码>:
//清空a.log内容 fs.writeFile (',/H罩尽薄ⅰ昂?err) { 如果(err) { console.log(错); } });
至此,我期望得到的日志文件就完成了。完整代码为:
const fs=要求(fs); 让选项={ 国旗:' a ',//编码:use utf8,//utf8编码 } 让stderr=fs.createWriteStream (’。/H罩尽?选项);//创建记录器 让记录器=new console.Console (stderr); fs.writeFile (',/H罩尽薄ⅰ昂?err) { 如果(err) { console.log(错); } });//真实项目中调用下面即可记录错误日志 logger.log(“这是一条日志1 '); logger.log(“这是一条日志2》); logger.log(“这是一条日志3 ');
可以将此封装起来,然后在需要的地方去调用。<代码> logger.log(“你需要记录的日志”)代码>即可。
<强> 5,其他强>
当然在此基础上你可以拓展其它内容,比如给日志中增加