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

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

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

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

1、前言

期望:

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

需要了解的知識點(diǎn):

fs
new console.Console

2、什么是 fs

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

如果你寫過 node,想必你應(yīng)該見過它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類,方便的擴(kuò)展出自己的console實(shí)例,比如把調(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后,我們開始寫這個簡單而實(shí)用的方法,先創(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);
// 真實(shí)項(xiàng)目中調(diào)用下面即可記錄錯誤日志
logger.log('這是一條日志1');
logger.log('這是一條日志2');
logger.log('這是一條日志3');

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

$ node index.js

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

好了,最簡易版的就這樣完成了。但是當(dāng)時在此執(zhí)行node logger.js時,日志將會累加上去,這樣會增加本地存儲的負(fù)擔(dān)。所以我希望的是每次執(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);
 }
});
// 真實(shí)項(xiàng)目中調(diào)用下面即可記錄錯誤日志
logger.log('這是一條日志1');
logger.log('這是一條日志2');
logger.log('這是一條日志3');

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

5、其他

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

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

參考資料:

nodejs.cn/api/console…

   nodejs.cn/api/fs.html

總結(jié)

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

相關(guān)文章

  • Node.js API詳解之 querystring用法實(shí)例分析

    Node.js API詳解之 querystring用法實(shí)例分析

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

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

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

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

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

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

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

    NodeJS使用JWT跨域身份驗(yàn)證方案詳解

    JWT是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn),其組成部分為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)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看詳細(xì)的介紹吧。
    2017-07-07
  • 使用Typescript和ES模塊發(fā)布Node模塊的方法

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

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

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

    這篇文章主要為大家詳細(xì)介紹了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

最新評論

阳高县| 隆子县| 墨脱县| 乌兰县| 罗平县| 明溪县| 海淀区| 北碚区| 新野县| 和静县| 鸡西市| 揭西县| 甘肃省| 双牌县| 镇安县| 逊克县| 义马市| 仁怀市| 沙湾县| 女性| 崇阳县| 余干县| 瑞丽市| 玉树县| 平塘县| 乌拉特后旗| 祥云县| 崇明县| 乡宁县| 邯郸县| 航空| 军事| 兴隆县| 股票| 都匀市| 巴里| 洪洞县| 肃宁县| 墨脱县| 广水市| 新巴尔虎右旗|