亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

Node.js利用console輸出日志文件的方法示例

2024-05-06 16:43:58
字體:
來源:轉載
供稿:網友

通常我們在寫Node.js程序時,都習慣使用console.log打印日志信息,但這也僅限于控制臺輸出,有時候我們需要將信息輸出到日志文件中,實際上利用console也可以達到這個目的的,今天就來簡單介紹一下。

我們首先創建如下文件:

// index.jslet fs = require('fs');let options = {  flags: 'a',     // append模式  encoding: 'utf8',  // utf8編碼};let stdout = fs.createWriteStream('./stdout.log', options);let stderr = fs.createWriteStream('./stderr.log', options);// 創建loggerlet logger = new console.Console(stdout, stderr);for (let i = 0; i < 100; i++) {  logger.log(`log message ${i}`);  logger.error(`err message ${i}`);}

在上面代碼中,我們其實是創建了一個console.Console類的實例,該類需要指定兩個參數,即標準輸出流和標準錯誤輸出流,正常情況下,實際上是對應了process.stdout和process.stderr,以上的代碼中,我們將這兩個輸出流改為了文件輸出流,并指定為文件追加模式,這樣即可將日志信息輸出到指定的文件中去。運行上面的代碼,會生成stdout.log和stderr.log兩個文件。

stdout.log文件內容如下:

log message 0log message 1log message 2log message 3log message 4log message 5log message 6log message 7log message 8log message 9log message 10...

stderr.log文件內容如下:

err message 0err message 1err message 2err message 3err message 4err message 5err message 6err message 7err message 8err message 9err message 10...

看上去信息還比較簡單,不像是日志文件的樣子,我們或許得為每條日志添加一個時間才行,下面先為Date對象添加一個format的原型方法:

// 添加format方法Date.prototype.format = function (format) {  if (!format) {    format = 'yyyy-MM-dd HH:mm:ss';  }    // 用0補齊指定位數  let padNum = function (value, digits) {    return Array(digits - value.toString().length + 1).join('0') + value;  };  // 指定格式字符  let cfg = {    yyyy: this.getFullYear(),             // 年    MM: padNum(this.getMonth() + 1, 2),        // 月    dd: padNum(this.getDate(), 2),           // 日    HH: padNum(this.getHours(), 2),          // 時    mm: padNum(this.getMinutes(), 2),         // 分    ss: padNum(this.getSeconds(), 2),         // 秒    fff: padNum(this.getMilliseconds(), 3),      // 毫秒  };  return format.replace(/([a-z]|[A-Z])(/1)*/ig, function (m) {    return cfg[m];  });}

然后再改寫前面的主文件:

// index.jslet fs = require('fs');let options = {  flags: 'a',     // append模式  encoding: 'utf8',  // utf8編碼};let stdout = fs.createWriteStream('./stdout.log', options);let stderr = fs.createWriteStream('./stderr.log', options);// 創建loggerlet logger = new console.Console(stdout, stderr);// 添加format方法Date.prototype.format = function (format) {  if (!format) {    format = 'yyyy-MM-dd HH:mm:ss';  }    // 用0補齊指定位數  let padNum = function (value, digits) {    return Array(digits - value.toString().length + 1).join('0') + value;  };  // 指定格式字符  let cfg = {    yyyy: this.getFullYear(),             // 年    MM: padNum(this.getMonth() + 1, 2),        // 月    dd: padNum(this.getDate(), 2),           // 日    HH: padNum(this.getHours(), 2),          // 時    mm: padNum(this.getMinutes(), 2),         // 分    ss: padNum(this.getSeconds(), 2),         // 秒    fff: padNum(this.getMilliseconds(), 3),      // 毫秒  };  return format.replace(/([a-z]|[A-Z])(/1)*/ig, function (m) {    return cfg[m];  });}for (let i = 0; i < 100; i++) {  let time = new Date().format('yyyy-MM-dd HH:mm:ss.fff');  logger.log(`[${time}] - log message ${i}`);  logger.error(`[${time}] - err message ${i}`);}

重新運行程序,然后查看兩個日志文件的內容。

stdout.log內容如下:

[2018-04-27 07:30:54.309] - log message 0[2018-04-27 07:30:54.312] - log message 1[2018-04-27 07:30:54.312] - log message 2[2018-04-27 07:30:54.312] - log message 3[2018-04-27 07:30:54.312] - log message 4[2018-04-27 07:30:54.312] - log message 5[2018-04-27 07:30:54.312] - log message 6[2018-04-27 07:30:54.312] - log message 7[2018-04-27 07:30:54.312] - log message 8[2018-04-27 07:30:54.312] - log message 9[2018-04-27 07:30:54.312] - log message 10...

stderr.log內容如下:

[2018-04-27 07:30:54.309] - err message 0[2018-04-27 07:30:54.312] - err message 1[2018-04-27 07:30:54.312] - err message 2[2018-04-27 07:30:54.312] - err message 3[2018-04-27 07:30:54.312] - err message 4[2018-04-27 07:30:54.312] - err message 5[2018-04-27 07:30:54.312] - err message 6[2018-04-27 07:30:54.312] - err message 7[2018-04-27 07:30:54.312] - err message 8[2018-04-27 07:30:54.312] - err message 9[2018-04-27 07:30:54.312] - err message 10...

這樣一個簡單的日志輸出就完成了。

參考資料:https://nodejs.org/api/console.html

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品一区二区三区电影| 91欧美日韩一区| 在线日韩中文字幕| 热久久美女精品天天吊色| 亚洲人午夜精品| 亚洲综合一区二区不卡| 成人h猎奇视频网站| 精品日韩中文字幕| 亚洲a在线播放| 国产精品久久久久不卡| 日韩免费在线播放| 超碰日本道色综合久久综合| 精品久久久一区二区| 欧美在线播放视频| 欧美性猛交xxxx乱大交蜜桃| 国产精品永久免费观看| 国产精品美女久久久免费| 欧美午夜精品久久久久久久| 久热精品视频在线| 欧美成人免费网| 琪琪亚洲精品午夜在线| 在线播放日韩精品| 国产一区二区三区三区在线观看| 亚洲精品国产欧美| 97免费视频在线播放| 中文字幕欧美在线| 国产日韩欧美91| 亚洲免费人成在线视频观看| 国产亚洲成精品久久| 神马国产精品影院av| 国产免费一区视频观看免费| 国产视频精品免费播放| 日韩视频免费中文字幕| 久久精品国产久精国产一老狼| 成人在线视频福利| 精品中文字幕久久久久久| 中文字幕av一区| 亚洲第一网站免费视频| 97在线观看视频| 中文国产成人精品久久一| 中文字幕在线精品| 九九热视频这里只有精品| 日韩精品在线免费观看| 国产999精品久久久| xx视频.9999.com| 日韩美女在线观看| 久久久久免费视频| 91亚洲精品久久久久久久久久久久| 亚洲日本欧美中文幕| 国产精品久久不能| 日产日韩在线亚洲欧美| 亚洲国产天堂久久综合网| 日韩有码在线观看| 亚洲国产一区二区三区在线观看| 久久久人成影片一区二区三区观看| 国产成人精品国内自产拍免费看| 亚洲欧美在线第一页| 视频在线观看99| 日韩中文字幕久久| 国产美女精品视频免费观看| 亚洲美女av在线| 日本精品中文字幕| 欧美在线激情视频| 国产精品久久久久秋霞鲁丝| 91精品国产高清自在线| 国产a∨精品一区二区三区不卡| 日韩视频精品在线| 欧美激情一区二区三区在线视频观看| 最近2019免费中文字幕视频三| 91视频免费在线| 日韩欧美国产视频| 国产主播精品在线| 欧美性理论片在线观看片免费| 亚洲开心激情网| 日韩电影免费在线观看中文字幕| 国产精品爱久久久久久久| 曰本色欧美视频在线| yellow中文字幕久久| 久久精品国产99国产精品澳门| 日韩av在线电影网| 国内伊人久久久久久网站视频| 国产美女扒开尿口久久久| 亚洲网站视频福利| 欧美午夜电影在线| 亚洲综合自拍一区| 日韩精品视频在线播放| 中文字幕欧美精品日韩中文字幕| 亚洲男人天堂2024| 蜜臀久久99精品久久久无需会员| 欧美特级www| 亚洲精品国产精品久久清纯直播| 日本午夜在线亚洲.国产| 久久99视频免费| 美日韩精品视频免费看| 成人国产精品av| 亚洲精品自拍视频| 欧美性猛交xxxx乱大交蜜桃| 欧美成人sm免费视频| 欧美激情久久久久久| 91美女片黄在线观| 国产精品爱啪在线线免费观看| 欧美性xxxx| 亚洲人a成www在线影院| 搡老女人一区二区三区视频tv| 91精品在线观| 亚洲最大的网站| 亚洲一区二区三区在线视频| 日韩av在线看| 久久全球大尺度高清视频| 欧美精品xxx| 亚洲电影免费观看高清完整版在线| 久久五月天综合| 亚洲第一视频在线观看| 日韩美女福利视频| 久久精品国产免费观看| 国内精品一区二区三区| 成人网页在线免费观看| 2019中文字幕在线| 国产日韩中文字幕| 久久久精品视频在线观看| 亚洲欧美国产一区二区三区| 国产精品人人做人人爽| 亚洲精品国精品久久99热一| 亚洲第一精品久久忘忧草社区| 亚洲一区二区三区在线免费观看| 日韩在线观看免费高清完整版| 欧美日韩亚洲一区二| 成人做爽爽免费视频| 国产精品678| 久久这里只有精品99| 欧美性生交xxxxx久久久| 国产91露脸中文字幕在线| 激情av一区二区| 欧美日韩人人澡狠狠躁视频| 92国产精品视频| 亚洲加勒比久久88色综合| 成人精品一区二区三区电影黑人| 欧美高清在线视频观看不卡| 亚洲精品视频久久| 亚洲欧美在线一区二区| 一区二区欧美激情| 欧美老女人在线视频| 国产偷国产偷亚洲清高网站| 亚洲图片在区色| 美乳少妇欧美精品| 欧美最猛性xxxxx亚洲精品| 亚洲国产精品久久| 国外成人在线视频| 狠狠躁夜夜躁久久躁别揉| 国产精品激情自拍| 亚洲片国产一区一级在线观看| 日韩欧美成人精品| 91久久综合亚洲鲁鲁五月天| 国产欧美精品日韩| 成人a级免费视频| 91国产精品电影| 这里只有精品视频在线| 欧美成人免费一级人片100| 国产精品吹潮在线观看| 亚洲激情电影中文字幕| 亚洲97在线观看| 国产欧美一区二区三区久久人妖| 欧美精品制服第一页| 在线播放国产一区中文字幕剧情欧美|