Apa keuntungan menggunakan console.log
vs console.info
? Atau salah satu perintah konsol lain dalam hal ini?
console.info("info");
console.error("error");
console.warn("warn");
vs.
console.log("log");
Saya pikir itu mungkin mengubah warna output atau menggabungkan semacam label, tetapi semuanya tampaknya melakukan hal yang sama. Dan menurut dokumentasi di sini:
https://nodejs.org/api/console.html#console_console_info_data
mereka tampaknya melakukan hal yang sama console.log
javascript
node.js
terminal
console
seantomburke
sumber
sumber
Jawaban:
Menurut dokumentasi yang Anda tautkan,
console.error
danconsole.warn
keluarannyastderr
. Output lainnya kestdout
.Jika Anda melakukan pemipaan atau pengalihan dari
node.js
perbedaan itu penting.Ada banyak JavaScript yang ditulis untuk dijalankan di browser dan
Node.js
. Memiliki node yang mengimplementasikan konsol lengkap memungkinkan kompatibilitas silang kode yang lebih besar.Di sebagian besar browser, log ini tidak hanya dalam berbagai warna, tetapi Anda juga dapat memfilter untuk melihat pesan tertentu.
console.info("info"); console.error("error"); console.warn("warn"); console.log("log");
sumber
node
(8.11.4
) dan Chrome 67, ada jugaconsole.debug
(dan kemungkinan versi sebelumnya juga).debug
peringkat di bawahlog
.console.log()
lebih pendek dariconsole.info()
Mereka adalah hal yang sama, dan itulah satu-satunya keuntungan.
sumber
Meskipun
console.log
danconsole.info
mungkin tidak berbeda, ada kegunaan lain selain pewarnaan belaka. Misalnya, saat menggunakan linter seperti eslint, Anda dapat menyetelconsole.log
untuk memberikan pesan peringatan. Katakanlah Anda hanya ingin menggunakanconsole.log
untuk tujuan pengembangan Anda dan menggunakanconsole.info
informasi yang mungkin dibutuhkan oleh pengguna akhir. Dengan linter, Anda sekarang memiliki pengingat yang terlihat dan langsung sementaraconsole.log
yang membantu Anda selama pengembangan, tetapi harus dihapus sebelum melakukan / menerbitkan.sumber
Menurut dokumen itu cukup jelas.
Artinya tidak ada keuntungan atau kerugiannya.
info
==log
, danwarn
==error
. Kecuali Anda ingin mencetak kestderr
,info
dan ataulog
akan bekerja.sumber
Secara visual, ada perbedaan sebenarnya antara
console.log
,console.info
,console.warn
, sertaconsole.error
mengenai sisi server (terminal) .Namun, ada modul ringan yang menambah biru, oranye dan warna merah untuk
console.info
,console.warn
, sertaconsole.error
masing-masing. Oleh karena itu, API konsol berperilaku seperti sisi klien.npm i console-info console-warn console-error --save-dev;
sumber
Satu detail lagi selain jawaban yang diterima: Di Chrome dan FireFox,
console.info
baris log diawali dengan ikon i kecil sedangkanconsole.log
baris tidak.warn
danerror
garis diawali dengan segitiga kecil dan x , masing-masing.sumber
stdin Aliran yang dapat dibaca untuk membaca masukan dari pengguna.
stdout Aliran yang dapat ditulis, baik secara sinkron maupun asinkron.
stderr Aliran dapat ditulis sinkron yang memblokir yang ditujukan untuk pesan kesalahan.
Fungsi stdout atau non-pemblokiran adalah: console.log, console.info, util.puts, util.print, dan Stderr.
Fungsi pemblokiran adalah: console.warn, console.error, util.debug dan process.stdin (aliran yang dapat dibaca untuk mendapatkan masukan pengguna).
sumber
Telah ditetapkan bahwa log dan info pada dasarnya adalah hal yang sama, tetapi saya tidak yakin itu sepenuhnya menjawab pertanyaan:
Satu manfaat, selain dari yang telah disebutkan, adalah Anda dapat menggunakan masing-masing untuk tujuan yang berbeda. Misalnya, Anda mungkin menggunakan console.log hanya untuk debugging cepat dan mengeluarkan semuanya ke konsol, sementara Anda mungkin menggunakan console.info untuk pesan permanen yang ingin Anda keluarkan ke konsol dalam kode Anda, seperti informasi tentang status aplikasi saat ini . Kemudian ketika Anda memiliki situasi di mana objek acak dicetak di konsol Anda dan Anda menyadari bahwa Anda telah meninggalkan pernyataan log di sana secara tidak sengaja, Anda dapat melakukan pencarian global untuk 'console.log' dan menghapus setiap contoh dan yakinlah Anda tidak menghapus sesuatu yang penting yang ingin Anda tinggalkan di sana.
sumber
Tingkat pencatatan yang berbeda memungkinkan Anda mengelola tingkat kebisingan di konsol Anda: Di Firefox (saya menggunakan 78 saat ini) dan Chrome (84) devtools, konsol js memungkinkan Anda memilih "tingkat debug" dari keluaran yang Anda inginkan Lihat. FF memungkinkan Anda mengaktifkan visibilitas
console.error
,.warn
,.log
,.info
, dan.debug
pesan dengan mengklik tombol individu untuk setiap (yang menunjukkan berapa banyak ditekan, ketika "off"), sedangkan Chrome memiliki dropdown dengan checkmarks sebelah item (.info
dan.log
dikendalikan oleh yang "Info", dan.debug
oleh "Verbose"). Label tarik-turun Chrome ("Semua tingkat" atau apa pun yang Anda setel) berubah menjadi merah jika keluaran disembunyikan.sumber
Saya telah melihat di mana
console.log
untuk sementara pencatatan informasi negara untuk debugging.console.info
adalah hal yang lebih permanen - seperti mengatakan port apa yang sedang berjalan, dan sesuatu yang tidak akan Anda hentikan setelah Anda selesai debugging.Ini membuatnya mudah untuk membersihkan kode Anda untuk melakukannya. Anda bahkan dapat meminta linter Anda memiliki aturan untuk mencegah console.log dilakukan.
sumber