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

ホームページ WeChat アプレット ミニプログラム開(kāi)発 コンソールにログ情報(bào)を出力する方法

コンソールにログ情報(bào)を出力する方法

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

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

我們首先創(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}`);
}

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

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

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

//?添加format方法
Date.prototype.format?=?function?(format)?{
??if?(!format)?{
????format?=?'yyyy-MM-dd?HH:mm:ss';
??}
??
??//?用0補(bǔ)齊指定位數(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),??????????//?時(shí)
????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];
??});
}

然后再改寫(xiě)前面的主文件:

//?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補(bǔ)齊指定位數(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),??????????//?時(shí)
????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}`);
}

重新運(yùn)行程序,然后查看兩個(gè)日志文件的內(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)掌握了方法,更多精彩請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

推薦閱讀:

utils.js使用案例詳解

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

以上がコンソールにログ情報(bào)を出力する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

新しいNintendo Switch Liteのリフレッシュの予約注文が開(kāi)始されました 新しいNintendo Switch Liteのリフレッシュの予約注文が開(kāi)始されました Jun 29, 2024 am 06:49 AM

任天堂は、最新バージョンのSwitch Lite(Amazonで現(xiàn)在189.99ドル)の予約注文を開(kāi)始した。ただし、このデバイスはまだ世界中で注文できません。要約すると、同社はほぼ 2 週間前に Switch Lite Hyrule Edition を発表しました。

WebSocket と JavaScript: リアルタイム監(jiān)視システムを?qū)g裝するための主要テクノロジー WebSocket と JavaScript: リアルタイム監(jiān)視システムを?qū)g裝するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監(jiān)視システムを?qū)g現(xiàn)するためのキーテクノロジー はじめに: インターネット技術(shù)の急速な発展に伴い、リアルタイム監(jiān)視システムは様々な分野で広く利用されています。リアルタイム監(jiān)視を?qū)g現(xiàn)するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監(jiān)視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実裝原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket: 効率的なリアルタイム天気予報(bào)システムの構(gòu)築 JavaScript と WebSocket: 効率的なリアルタイム天気予報(bào)システムの構(gòu)築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報(bào)システムの構(gòu)築 はじめに: 今日、天気予報(bào)の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報(bào)を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報(bào)システムを構(gòu)築する方法を?qū)Wびます。この記事では、具體的なコード例を通じて実裝プロセスを説明します。私たちは

簡(jiǎn)単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡(jiǎn)単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開(kāi)発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場(chǎng)合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判斷し、さまざまなステータス コードに基づいて対応する処理を?qū)g行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

MagicX XU Mini M: 分解により、宣伝されていた RK3562 ではなく RK3326 CPU が明らかに、MagicX はサードパーティ開(kāi)発者との関係を斷つ MagicX XU Mini M: 分解により、宣伝されていた RK3562 ではなく RK3326 CPU が明らかに、MagicX はサードパーティ開(kāi)発者との関係を斷つ Sep 01, 2024 am 06:30 AM

最近 MagicX XU Mini M を購(gòu)入した方は、このニュースは驚くかもしれません。新しくリリースされたハンドヘルド コンソールのハードウェアとソフトウェアの分解により、宣伝されている RK3562 CPU が実際にはスペックの低い古い RK3326 プロセッサであることが明らかになりました。

任天堂、Switch 2発売前に新たなSwitch Liteのリフレッシュを発表 任天堂、Switch 2発売前に新たなSwitch Liteのリフレッシュを発表 Jun 20, 2024 am 09:41 AM

任天堂は昨日、最新の Nintendo Direct イベントで多くのゲームを発表しましたが、その概要については別途ご案內(nèi)しました。さらに、同社は Switch Lite の新バージョン (Amazon で現(xiàn)在 194.93 ドル) も発表しました。

JavaScript で HTTP ステータス コードを簡(jiǎn)単に取得する方法 JavaScript で HTTP ステータス コードを簡(jiǎn)単に取得する方法 Jan 05, 2024 pm 01:37 PM

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開(kāi)発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具體的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開(kāi)始したときに、サービスが

Nintendo Switch 2 には、『アサシン クリード シャドウズ』とシリーズの以前の作品が移植されると噂されています Nintendo Switch 2 には、『アサシン クリード シャドウズ』とシリーズの以前の作品が移植されると噂されています Aug 14, 2024 pm 12:36 PM

先週、ゲーム関係者として知られる Paul Gele 氏は、次期 Nintendo Switch 2 には発売時(shí)に主要なサードパーティ製 AAA ポートが搭載される予定だと語(yǔ)りました。第一世代のゲームハンドヘルドには発売時(shí)に AAA タイトルがなかったので、これは楽しみなことです。 B

See all articles