亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

? ?? ??? ?? ???? ?? ???? ?? ??? ???? ??

???? ?? ??? ???? ??

Jun 04, 2018 pm 03:16 PM
console javascript node.js

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

我們首先創(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?<?100;?i++)?{
??logger.log(`log?message?${i}`);
??logger.error(`err?message?${i}`);
}

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

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
...

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
...

看上去信息還比較簡單,不像是日志文件的樣子,我們或許得為每條日志添加一個時間才行,下面先為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];
??});
}

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

//?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?<?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}`);
}

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

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

[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內(nèi)容如下:

[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
...

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關注php中文網(wǎng)其它相關文章!

推薦閱讀:

utils.js使用案例詳解

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

? ??? ???? ?? ??? ???? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1597
29
PHP ????
1488
72
NYT ?? ??? ??
130
836
???
??? Nintendo Switch Lite ????? ?? ?? ?? ?? ??? Nintendo Switch Lite ????? ?? ?? ?? ?? Jun 29, 2024 am 06:49 AM

Nintendo? ?? ??? Switch Lite(Amazon?? ?? $189.99)? ?? ?? ??? ??????. ??? ? ??? ?? ? ????? ??? ? ????. ???? ??? ?? 2? ?? Switch Lite Hyrule Edition? ??????.

WebSocket ? JavaScript: ??? ???? ??? ??? ?? ?? ?? WebSocket ? JavaScript: ??? ???? ??? ??? ?? ?? ?? Dec 17, 2023 pm 05:30 PM

WebSocket? JavaScript: ??? ???? ??? ??? ?? ?? ?? ??: ??? ??? ??? ??? ?? ??? ???? ???? ??? ???? ?? ???? ??. ??? ????? ???? ?? ?? ? ??? WebSocket? JavaScript? ?????. ? ????? ??? ???? ????? WebSocket ? JavaScript? ??? ???? ?? ??? ???? ?? ??? ??? ?????. 1. ??? ??

JavaScript? WebSocket: ???? ??? ???? ??? ?? JavaScript? WebSocket: ???? ??? ???? ??? ?? Dec 17, 2023 pm 05:13 PM

JavaScript ? WebSocket: ???? ??? ?? ?? ??? ?? ??: ??? ?? ??? ???? ?? ??? ?? ??? ?? ?????. ??? ???? ?? ??? ?? ???? ????? ?????? ?? ???? ??? ? ?? ????? ??? ? ????. ? ????? JavaScript ? WebSocket ??? ???? ???? ??? ?? ?? ???? ???? ??? ?????. ? ????? ?? ?? ??? ?? ?? ????? ?????. ??

??? JavaScript ????: HTTP ?? ??? ?? ?? ??? JavaScript ????: HTTP ?? ??? ?? ?? Jan 05, 2024 pm 06:08 PM

JavaScript ????: HTTP ?? ??? ?? ??, ?? ?? ??? ?????. ??: ? ????? ???? ??? ?? ??? ?? ?????. ??? ??? ? ??? HTTP ?? ??? ???? ??? ?? ??? ???? ??? ?? ??? ?? ?? ??? ???? ?? ??? ????. ? ????? JavaScript? ???? HTTP ?? ??? ?? ??? ? ?? ???? ?? ??? ?????. XMLHttpRequest ??

MagicX XU Mini M: Teardown? ??? RK3562 ?? RK3326 CPU? ???? MagicX ??? ?? ???? ?????. MagicX XU Mini M: Teardown? ??? RK3562 ?? RK3326 CPU? ???? MagicX ??? ?? ???? ?????. Sep 01, 2024 am 06:30 AM

?? MagicX XU Mini M? ???? ????? ? ??? ??? ?? ????. ?? ??? ??? ??? ???? ? ????? ?? ??, ??? RK3562 CPU? ???? ??? ?? ?? RK3326 ????? ??? ??????.

Nintendo? Switch 2 ?? ?? ??? Switch Lite ????? ??????. Nintendo? Switch 2 ?? ?? ??? Switch Lite ????? ??????. Jun 20, 2024 am 09:41 AM

Nintendo? ?? ?? ??? Nintendo Direct ????? ?? ??? ????? ?? ?? ??? ??? ??????. ?? ??? Switch Lite? ? ??(Amazon?? ?? $194.93)? ??????.

JavaScript?? HTTP ?? ??? ?? ?? ?? JavaScript?? HTTP ?? ??? ?? ?? ?? Jan 05, 2024 pm 01:37 PM

JavaScript?? HTTP ?? ??? ?? ?? ??: ??? ?? ???? ??? ?? ??? ??????? ?? ??? ???? ?? HTTP ?? ??? ?? ??? ?????. HTTP ?? ??? ???? ?? ?? ??????? ??? ???? ? ? ???? ? ??? ???. ? ????? JavaScript? ???? HTTP ?? ??? ?? ??? ???? ???? ?? ??? ?????. 1. HTTP ?? ??? ?????? HTTP ?? ??? ????? ??? ??? ??? ? ????

Nintendo Switch 2? Assassin's Creed Shadows ? ?? ??? ??? ??? ???? ??? ????. Nintendo Switch 2? Assassin's Creed Shadows ? ?? ??? ??? ??? ???? ??? ????. Aug 14, 2024 pm 12:36 PM

?? ?, ??? ?? ?? ??? Paul Gele? ? ??? Nintendo Switch 2? ?? ? ?? ?? AAA ??? ?? ? ???? ??????. 1?? ??? ??? ???? ?? ?? AAA ???? ?? ??? ??? ?? ????? ????. ?

See all articles