console怎樣打印日志信息

這次給大家帶來console怎樣打印日志信息,console打印日志信息的注意事項有哪些,下面就是實戰案例,一起來看一下。愛掏網 - it200.com

我們首先創建如下文件:

//?index.js
let?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);
//?創建logger
let?logger?=?new?console.Console(stdout,?stderr);
for?(let?i?=?0;?i?登錄后復制

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

stdout.log文件內容如下:

log?message?0
log?message?1
log?message?2
log?message?3
log?message?4
log?message?5
log?message?6
log?message?7
log?message?8
log?message?9
log?message?10
...
登錄后復制

stderr.log文件內容如下:

err?message?0
err?message?1
err?message?2
err?message?3
err?message?4
err?message?5
err?message?6
err?message?7
err?message?8
err?message?9
err?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.js
let?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);
//?創建logger
let?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?登錄后復制

重新運行程序,然后查看兩個日志文件的內容。愛掏網 - it200.com

stdout.log內容如下:

[2024-04-27?07:30:54.309]?-?log?message?0
[2024-04-27?07:30:54.312]?-?log?message?1
[2024-04-27?07:30:54.312]?-?log?message?2
[2024-04-27?07:30:54.312]?-?log?message?3
[2024-04-27?07:30:54.312]?-?log?message?4
[2024-04-27?07:30:54.312]?-?log?message?5
[2024-04-27?07:30:54.312]?-?log?message?6
[2024-04-27?07:30:54.312]?-?log?message?7
[2024-04-27?07:30:54.312]?-?log?message?8
[2024-04-27?07:30:54.312]?-?log?message?9
[2024-04-27?07:30:54.312]?-?log?message?10
...
登錄后復制

stderr.log內容如下:

[2024-04-27?07:30:54.309]?-?err?message?0
[2024-04-27?07:30:54.312]?-?err?message?1
[2024-04-27?07:30:54.312]?-?err?message?2
[2024-04-27?07:30:54.312]?-?err?message?3
[2024-04-27?07:30:54.312]?-?err?message?4
[2024-04-27?07:30:54.312]?-?err?message?5
[2024-04-27?07:30:54.312]?-?err?message?6
[2024-04-27?07:30:54.312]?-?err?message?7
[2024-04-27?07:30:54.312]?-?err?message?8
[2024-04-27?07:30:54.312]?-?err?message?9
[2024-04-27?07:30:54.312]?-?err?message?10
...
登錄后復制

相信看了本文案例你已經掌握了方法,更多精彩請關注愛掏網 - it200.com其它相關文章!

推薦閱讀:

utils.js使用案例詳解

使用JS怎樣實現最簡單的跨域

以上就是console怎樣打印日志信息的詳細內容,更多請關注愛掏網 - it200.com其它相關文章!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 精品国产一区二区三区久久狼| 中文字幕电影在线观看| 91在线激情在线观看| 激情图片小说网| 天天舔天天操天天干| 六月婷婷综合激情| 东北大炕王婶小说| 红色一片免费高清影视| 成人自拍视频在线观看| 四虎成人影院网址| 中文字幕中文字幕| 美女大量吞精在线观看456| 成人欧美一区二区三区的电影 | 国产日韩精品在线| 亚州日本乱码一区二区三区| 性xxxxfeixxxxx欧美| 最新国产在线拍揄自揄视频| 国产成人精品免费视频大全| 九九热这里都是精品| 香港黄色碟片黄色碟片| 日日噜噜噜夜夜爽爽狠狠视频| 国产亚洲美女精品久久久| 久久久久亚洲AV片无码| 老公去上班的午后时光| 性久久久久久久| 免费a级毛片在线播放| 99久久婷婷国产综合精品| 欧美综合在线视频| 国产精品va无码二区| 久久精品国产99国产精品澳门| 超级香蕉97在线观看视频| 成人区人妻精品一区二区不卡网站 | 欧美午夜精品久久久久免费视 | 国产午夜免费福利红片| 久久99精品久久久久久不卡| 精品福利一区二区三区| 天天综合天天色| 亚洲日本va午夜中文字幕一区| www.亚洲成在线| 日本午夜免费福利视频| 午夜dj在线观看免费视频|