一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

console怎樣打印日志信息

這次給大家?guī)韈onsole怎樣打印日志信息,console打印日志信息的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。愛掏網(wǎng) - it200.com

我們首先創(chuàng)建如下文件:

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

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

stdout.log文件內(nèi)容如下:

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
...
登錄后復(fù)制

stderr.log文件內(nèi)容如下:

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
...
登錄后復(fù)制

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

//?添加format方法
Date.prototype.format?=?function?(format)?{
??if?(!format)?{
????format?=?'yyyy-MM-dd?HH:mm:ss';
??}
??
??//?用0補齊指定位數(shù)
??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];
??});
}
登錄后復(fù)制

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

//?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);
//?創(chuàng)建logger
let?logger?=?new?console.Console(stdout,?stderr);
//?添加format方法
Date.prototype.format?=?function?(format)?{
??if?(!format)?{
????format?=?'yyyy-MM-dd?HH:mm:ss';
??}
??
??//?用0補齊指定位數(shù)
??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?登錄后復(fù)制

重新運行程序,然后查看兩個日志文件的內(nèi)容。愛掏網(wǎng) - it200.com

stdout.log內(nèi)容如下:

[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
...
登錄后復(fù)制

stderr.log內(nèi)容如下:

[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
...
登錄后復(fù)制

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注愛掏網(wǎng) - it200.com其它相關(guān)文章!

推薦閱讀:

utils.js使用案例詳解

使用JS怎樣實現(xiàn)最簡單的跨域

以上就是console怎樣打印日志信息的詳細(xì)內(nèi)容,更多請關(guān)注愛掏網(wǎng) - it200.com其它相關(guān)文章!

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評論
更多 網(wǎng)友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 香蕉一区二区 | 午夜精品久久久久久久99黑人 | 国产农村一级国产农村 | 精品一区二区三区四区五区 | 男女羞羞视频大全 | 日本不卡一区 | 福利视频1000 | 免费久久精品 | 亚洲情综合五月天 | 日本中出视频 | 在线观看国产视频 | 青青草精品视频 | 国产清纯白嫩初高生视频在线观看 | 久久国产福利 | 亚洲一区二区三区在线视频 | 精品国产免费一区二区三区演员表 | 国产成人精品一区二区三区在线 | 国产午夜精品一区二区三区四区 | 国产目拍亚洲精品99久久精品 | 一区二区免费看 | 天天av天天好逼 | 精品国产久 | 一级毛片成人免费看a | 国产激情视频在线观看 | 欧美6一10sex性hd| 午夜视频在线播放 | 视频一区二区中文字幕日韩 | 久久亚洲一区二区 | 精品久久久久久久 | 亚洲成人精品久久 | 国产免费看| 特级a欧美做爰片毛片 | 一区二区三区四区在线视频 | 日日碰狠狠躁久久躁婷婷 | 天天艹天天干天天 | 色综合久久久久 | 欧美一区日韩一区 | 亚洲在线看 | 91成人在线| 一区二区在线免费观看视频 | 天天操综合网 |