日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node.js 在本地生成日志文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • Node.js 在本地生成日志文件
    • 1、前言
    • 2、什么是 fs
    • 3、new console.Console(stdout, stderr, ignoreErrors)
    • 4、node.js 生成日志文件方法
    • 5、其他
    • 6. 參考鏈接

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

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

1、前言

期望:

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

需要了解的知識點:

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實例,比如把調(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 的兩個模塊fs和console后,我們開始寫這個簡單而實用的方法,先創(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 文件

好了,最簡易版的就這樣完成了。但是當(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);} }); // 真實項目中調(diào)用下面即可記錄錯誤日志 logger.log('這是一條日志1'); logger.log('這是一條日志2'); logger.log('這是一條日志3'); // 也可以設(shè)置定時清空內(nèi)容 setTimeout(() => {fs.writeFile('./a.log', '', function (err) {if(err){console.log(err);}}); }, 1000 * 3600 * 24); // 每24小時清空

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

5、其他

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

6. 參考鏈接

  • http://nodejs.cn/api/console.html#console_new_console_options
  • http://nodejs.cn/api/fs.html#fs_fs_writefile_file_data_options_callback

轉(zhuǎn)載自:Node.js 在本地生成日志文件的方法

總結(jié)

以上是生活随笔為你收集整理的Node.js 在本地生成日志文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。