最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年02月07日 11:23:52   作者:allan91  
這篇文章主要介紹了Node.js 在本地生成日志文件的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

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

1、前言

期望:

  • 每次運行腳本時,生成log日志存儲到本地
  • 每次執(zhí)行腳本,之前日志內(nèi)容清空

需要了解的知識點:

fs
new console.Console

2、什么是 fs

使用 node.js 對日志進行存儲,就一定會對本地文件的增刪改查,那么我們需要用到fs。

如果你寫過 node,想必你應該見過它fs,fs全稱為文件系統(tǒng)(File System)。文件系統(tǒng)簡單來說就是通過 Node 來操作系統(tǒng)中的文件。

fs 不需要 npm install,node 中自帶,直接引用即可:

const fs = require('fs');

本文將會使用 fs 的fs.createWriteStream(path, options)方法,用于創(chuàng)建可讀流,用法如下:

/**
 * @param1 path
 * @param2 options
 */
let fs = require('fs');
let ws = fs.createWriteStream('./1.txt',{
 flags:'w'//文件的打開模式
 ,mode:0o666//文件的權(quán)限設(shè)置
 ,encoding:'utf8'//寫入文件的字符的編碼
 ,highWaterMark:3//最高水位線
 ,start:0 //寫入文件的起始索引位置  
 ,autoClose:true//是否自動關(guān)閉文檔
})

以此用于在日志記錄后于本地生成日志文件。

3、new console.Console(stdout[, stderr][, ignoreErrors])

在 node.js 中 console 模塊提供了基礎(chǔ)的調(diào)試功能。使用很簡單,常用的API主要有 console.log()、console.error()。

此外,可以基于Console類,方便的擴展出自己的console實例,比如把調(diào)試信息打印到文件里,而部署輸出在控制臺上。

const fs = require('fs');
const file = fs.createWriteStream('./outPut.txt');
let logger = new console.Console(file, file);
// 調(diào)用
logger.log('hello');

此時,調(diào)用logger.log內(nèi)容將會輸出到 outPut.txt里,而不是打印到控制臺。

4、node.js 生成日志文件方法

在了解完 node 的兩個模塊fsconsole后,我們開始寫這個簡單而實用的方法,先創(chuàng)建 index.js

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

let opions = {
 flags: 'a', // 
 encoding: 'utf8', // utf8編碼
}
let stderr = fs.createWriteStream('./a.log', options);
// 創(chuàng)建logger
let logger = new console.Console(stderr);
// 真實項目中調(diào)用下面即可記錄錯誤日志
logger.log('這是一條日志1');
logger.log('這是一條日志2');
logger.log('這是一條日志3');

打開終端執(zhí)行node logger.js:

$ node index.js

此時根目錄將會生成 a.log 文件

好了,最簡易版的就這樣完成了。但是當時在此執(zhí)行node logger.js時,日志將會累加上去,這樣會增加本地存儲的負擔。所以我希望的是每次執(zhí)行的時候清空一下。

那就來改寫一下 index.js, node.js 中改寫依舊使用fs的方法fs.writeFile

// 清空a.log內(nèi)容
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);
// 創(chuàng)建logger
let logger = new console.Console(stderr);
fs.writeFile('./a.log', '', function (err) {
 if(err){
  console.log(err);
 }
});
// 真實項目中調(diào)用下面即可記錄錯誤日志
logger.log('這是一條日志1');
logger.log('這是一條日志2');
logger.log('這是一條日志3');

可以將此封裝起來,然后在需要的地方去調(diào)用。logger.log('你需要記錄的日志')即可。

5、其他

當然在此基礎(chǔ)上你可以拓展其它內(nèi)容,比如給日志中增加時間戳、區(qū)分日志類型儲存等。

以上,如有問題或建議歡迎指正。

參考資料:

nodejs.cn/api/console…

   nodejs.cn/api/fs.html

總結(jié)

以上所述是小編給大家介紹的Node.js 在本地生成日志文件的方法,希望對大家有所幫助!

相關(guān)文章

  • Node.js API詳解之 querystring用法實例分析

    Node.js API詳解之 querystring用法實例分析

    這篇文章主要介紹了Node.js API詳解之 querystring用法,結(jié)合實例形式分析了Node.js API中querystring的基本功能、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 使用nodejs?spider爬取圖片及數(shù)據(jù)實現(xiàn)

    使用nodejs?spider爬取圖片及數(shù)據(jù)實現(xiàn)

    這篇文章主要為大家介紹了使用nodejs?spider爬取圖片及數(shù)據(jù)實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • NVM管理Node.js實現(xiàn)不同版本Angular環(huán)境切換

    NVM管理Node.js實現(xiàn)不同版本Angular環(huán)境切換

    Node Version Manager(NVM)是一個用于管理多個Node.js版本的工具,它允許用戶在同一臺機器上安裝和使用多個Node.js版本,本文將給大家介紹NVM管理Node.js實現(xiàn)不同版本Angular環(huán)境切換的流程步驟,需要的朋友可以參考下
    2024-05-05
  • 在Mac OS下使用Node.js的簡單教程

    在Mac OS下使用Node.js的簡單教程

    這篇文章主要介紹了在Mac OS下使用Node.js的簡單教程,Node.js是讓JavaScript應用運行于服務(wù)器端的框架,需要的朋友可以參考下
    2015-06-06
  • NodeJS使用JWT跨域身份驗證方案詳解

    NodeJS使用JWT跨域身份驗證方案詳解

    JWT是為了在網(wǎng)絡(luò)應用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標準,其組成部分為Header、Payload、Signature.Payload部分才是真正的用戶信息,它是用戶信息經(jīng)過加密之后生成的字符串,Header和Signature是安全性相關(guān)的部分,只是為了保證token的安全性
    2023-02-02
  • 淺談關(guān)于axios和session的一些事

    淺談關(guān)于axios和session的一些事

    這篇文章主要給大家介紹了關(guān)于axios和session的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看詳細的介紹吧。
    2017-07-07
  • 使用Typescript和ES模塊發(fā)布Node模塊的方法

    使用Typescript和ES模塊發(fā)布Node模塊的方法

    這篇文章主要介紹了使用Typescript和ES模塊發(fā)布Node模塊的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • nodejs個人博客開發(fā)第五步 分配數(shù)據(jù)

    nodejs個人博客開發(fā)第五步 分配數(shù)據(jù)

    這篇文章主要為大家詳細介紹了nodejs個人博客開發(fā)的分配數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 基于npm?install或run時一些報錯的解決方案

    基于npm?install或run時一些報錯的解決方案

    這篇文章主要介紹了基于npm?install或run時一些報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • NodeJS 中Stream 的基本使用

    NodeJS 中Stream 的基本使用

    在 NodeJS 中,我們對文件的操作需要依賴核心模塊 fs , fs 中有很基本 API 可以幫助我們讀寫占用內(nèi)存較小的文件,這篇文章主要介紹了NodeJS 中Stream 的基本使用,需要的朋友可以參考下
    2018-07-07

最新評論

甘德县| 涞水县| 三门县| 财经| 定南县| 桃源县| 朝阳县| 双流县| 连山| 天门市| 阿坝| 衢州市| 德兴市| 商南县| 金山区| 九江市| 黄山市| 桐乡市| 太湖县| 吴堡县| 毕节市| 会东县| 英超| 伽师县| 新平| 台南县| 太白县| 兴文县| 波密县| 临邑县| 凉山| 霍山县| 三台县| 霍邱县| 湖口县| 潼关县| 尤溪县| 河东区| 唐河县| 藁城市| 灵武市|