91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js 在本地生成日志文件的方法

發布時間:2020-09-13 05:08:04 來源:腳本之家 閱讀:205 作者:allan91 欄目:web開發

平常都使用console來打印 node 腳本執行時需要看到的信息,但這些信息也就只能在控制臺查看。假如你希望將打印的信息輸出到日志(log)文件查看的話,那就往下看看吧。

1、前言

期望:

  • 每次運行腳本時,生成log日志存儲到本地
  • 每次執行腳本,之前日志內容清空

需要了解的知識點:

fs
new console.Console

2、什么是 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 的兩個模塊fsconsole后,我們開始寫這個簡單而實用的方法,先創建 index.js

// index.js
const fs = require('fs');

let opions = {
 flags: 'a', // 
 encoding: 'utf8', // utf8編碼
}
let stderr = fs.createWriteStream('./a.log', options);
// 創建logger
let 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);
// 創建logger
let 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 在本地生成日志文件的方法,希望對大家有所幫助!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

得荣县| 隆子县| 榆社县| 萍乡市| 政和县| 高清| 杂多县| 靖西县| 许昌市| 平顶山市| 长春市| 吉隆县| 瓦房店市| 西和县| 泗水县| 犍为县| 阿瓦提县| 淮北市| 富源县| 酒泉市| 内丘县| 泰州市| 本溪市| 白山市| 黔南| 囊谦县| 贵定县| 红安县| 九江市| 新巴尔虎右旗| 廊坊市| 和政县| 伊川县| 清流县| 盐池县| 平凉市| 仙游县| 深水埗区| 翁源县| 武山县| 柘荣县|