Node.jsconsole.logとconsole.info


96

console.logvsを使用する利点は何console.infoですか?または、そのことに関する他のコンソールコマンドのいずれか?

console.info("info");
console.error("error");
console.warn("warn");

vs

console.log("log");

出力の色を変えたり、ある種のラベルを連結したりするかもしれないと思いましたが、それらはすべて同じことをしているようです。そして、ここのドキュメントによると:

https://nodejs.org/api/console.html#console_console_info_data

それらはすべて同じことをするようです console.log



3
ヒント:色を使用すると、次の情報が見やすくなります。console.log( '%c Sample Text'、 'color:green;'); または、次を使用してテキストにVARを追加します。console.log( `Sample $ {variable}`、 'color:green;');
Gilberto B.

おかげで、それがノードjsでも機能することを知りませんでした

回答:


83

あなたがにリンクされていることを文書によると、console.errorおよびconsole.warn出力へstderr。その他はに出力しstdoutます。

配管やnode.js差からのリダイレクトを行う場合は重要です。

ブラウザとの両方で実行するように記述されたJavaScriptがたくさんありますNode.js。ノードに完全なコンソールを実装させることで、コードの相互互換性を高めることができます。

ほとんどのブラウザでは、これらのログをさまざまな色で表示するだけでなく、フィルタリングして特定のメッセージを表示することもできます。

console.info("info");
console.error("error");
console.warn("warn");
console.log("log");

ありがとうございました!表示が異なるのはブラウザでした。ターミナルで色の変化を探していました。
seantomburke 2014

2
node8.11.4クローム67)と、もありますconsole.debug(だけでなく、以前のバージョンでは、非常に可能性が高いです)。debug以下にランク付けされますlog
マーカス

40

console.log() より短い console.info()

それらは同じものであり、それが唯一の利点です。

ここに画像の説明を入力してください


67
「それが唯一の利点」は単に真実ではなく、かなり近視眼的であるため、私は反対票を投じます。メソッドの実装はまったく同じかもしれませんが、意味が異なります。コンソールを使用すると、たとえば、ログレベルのフィルタリングを簡単に実装できます。
rixo 2016年

4
console.log = stdout、一方console.error = stderr
Craig Wayne

9
developer.mozilla.org/en-US/docs/Web/API/Console/info-「FirefoxとChromeでは、Webコンソールのログのこれらの項目の横に小さな「i」アイコンが表示されます」-image.ibb .co / gYrZHe / infolog.png
ed

5
@EdwardSammutAlessi私はChromeを使用して表示されるように、私のアイコンを再作成し、取得することができませんでしたよ
chevybow

1つのデータポイント:Firefox 78:log.info出力の前にⓘ(円で囲まれたi)を出力します。Chrome 84:ありません。
トムハント

34

一方でconsole.logconsole.info違うではないかもしれない、単なる着色を除く他の用途があります。たとえば、eslintのようなリンターを使用する場合console.log、警告メッセージを提供するように設定できます。console.log開発目的でのみ使用console.infoし、エンドユーザーが必要とする可能性のある情報にのみ使用するとします。リンターを使用すると、console.log開発中に役立つ一時的なものを目に見える形で直接思い出させることができますが、コミット/公開する前に削除する必要があります。


3
この答えが他のすべての答えよりも適切だと思った理由がわかりません。@ Figidonです。
Shreyan Mehta 2018

1
私は同意します。開発モードと本番モードのeslintで使用するのに最適なソリューション。console.logを渡してはなりません!(スタッフと剣を手に)
TomasVancoillie20年

26

ドキュメントによると、それはかなり明確です。

console.info([data]、[...])#console.logと同じです。

console.error([data]、[...])#console.logと同じですが、stderrに出力します。

console.warn([data]、[...])#console.errorと同じです。

これは、メリットもデメリットもないことを意味します。info== log、およびwarn== error。あなたが印刷したい場合を除きstderrinfo及びまたはlog動作します。


23

視覚的に、実際のうちの差console.logconsole.infoconsole.warn、ならびにconsole.errorに関するサーバ側(端末)

しかし、そこにある軽量のモジュールを追加青、オレンジと赤の色を するためにはconsole.infoconsole.warnだけでなく、console.errorそれぞれ。これにより、コンソールAPIはクライアント側のように動作します。

 npm i console-info console-warn console-error --save-dev;

ここに画像の説明を入力してください


10

受け入れられた回答に加えてもう1つの詳細:ChromeとFireFoxでは、console.infoログ行の前に小さなiアイコンが付いていますが、console.log行はありません。warnerror線の前には、それぞれ小さな三角形とxが付いています。


他の場所で観察されているように:Firefox 78:log.info出力の前にⓘ(円で囲まれたi)を出力します。Chrome 84:ありません
TomHundt20年

3

stdin ユーザーからの入力を読み取るための読み取り可能なストリーム。

stdout 同期または非同期の書き込み可能なストリーム。

stderr エラーメッセージを対象としたブロッキング同期書き込み可能ストリーム。

stdoutまたは非ブロッキング関数は、console.log、console.info、util.puts、util.print、およびStderrです。

ブロックfunctonsは以下のとおりです。console.warn、console.error、util.debugとprocess.stdin(ユーザー入力を取得するための読み込み可能なストリーム)。


2

ログと情報は基本的に同じものであることが確立されていますが、それが質問に完全に答えるかどうかはわかりません。

console.logとconsole.infoを使用する利点は何ですか?

すでに述べたこととは別に、1つの利点は、それぞれを異なる目的に使用できることです。たとえば、コンソールにすばやくデバッグして吐き出すためだけにconsole.logを使用し、コードでコンソールに出力する永続的なメッセージ(現在のアプリのステータスに関する情報など)にconsole.infoを使用する場合があります。 。次に、ランダムなオブジェクトがコンソールに出力され、誤ってログステートメントがどこかに残っていることに気付いた場合は、「console.log」をグローバル検索してすべてのインスタンスを削除し、自信を持ってください。そこに残すつもりだった重要なものは何も削除しませんでした。


0

さまざまなログレベルを使用すると、コンソールのノイズレベルを管理 できます。Firefox(現在78を使用しています)とChrome(84)devtoolsの両方で、jsコンソールを使用して出力の「デバッグレベル」を選択できます。見る。FFは、あなたがの可視性を切り替えることができますconsole.error.warn.log.info、及び.debugクロムが次の項目にチェックマークを持つドロップダウンを持っている(一方で、(とき「オフ」、抑制されたどのように多くのあなたを見る)ごとに個別のボタンをクリックして、メッセージを.info.logによって制御されています「情報」のもの、および.debug「詳細」による)。出力が抑制されると、Chromeのドロップダウンラベル(「すべてのレベル」または設定したもの)が赤に変わります。


0

console.logデバッグのために状態情報を一時的にログに記録する場所を見てきました。

console.info これはより永続的なものです。たとえば、何かが実行されているポートや、デバッグが完了した後は切り取らないものなどです。

これにより、コードをコミットするためのクリーンアップが簡単になります。リンターにconsole.logがコミットされないようにするルールを設定することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.