Node.js console.log ve console.info karşılaştırması


92

console.logVs kullanmanın faydası nedir console.info? Veya bu konudaki diğer konsol komutlarından herhangi biri?

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

vs

console.log("log");

Çıktının rengini değiştirebileceğini veya bir tür etiket birleştirebileceğini düşündüm, ancak hepsi aynı şeyi yapıyor gibi görünüyor. Ve buradaki belgelere göre:

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

hepsi aynı şeyi yapıyor gibi görünüyor console.log



3
Bazı ipuçları: Daha iyi bir görünüm elde etmek için renkleri kullanabilirsiniz: console.log ('% c Örnek Metin', 'color: green;'); Veya şunu kullanarak metne biraz VAR ekleyin: console.log (`Örnek $ {değişken}`, 'renk: yeşil;');
Gilberto B. Terra Jr.

Teşekkürler, js düğümünde de çalıştığını bilmiyordum

Yanıtlar:


81

Bağlandığınız belgelere console.errorve console.warnçıktılara göre stderr. Diğerleri,stdout .

Borulama veya yönlendirme yapıyorsanız node.jsfark önemlidir.

Hem tarayıcıda hem de Node.js. Düğümün tüm konsolu uygulamasına sahip olmak, daha fazla çapraz kod uyumluluğu sağlar.

Çoğu tarayıcıda, bu günlükleri yalnızca farklı renklerde yapmakla kalmaz, aynı zamanda belirli mesajları görmek için filtreleyebilirsiniz.

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

Teşekkür ederim! Farklı göründüğü tarayıcıydı. Renk değişiklikleri için terminalde bakıyordum.
seantomburke

2
In node( 8.11.4Chrome 67) ve aynı zamanda orada console.debug(sıra önceki sürümleri ve oldukça muhtemeldir). debugaşağıda sıralar log.
Marcus Junius Brutus

41

console.log() daha kısa console.info()

Aynı şey ve bu tek avantaj.

görüntü açıklamasını buraya girin


65
Olumsuz oy veriyorum çünkü "tek avantaj bu" kesinlikle doğru değil ve ileriyi göremiyor. Yöntemler tam olarak aynı uygulamaya sahip olabilir, ancak farklı anlamları vardır . konsol, örneğin günlük düzeyinde filtrelemeyi önemsiz şekilde uygulamanıza izin verir.
rixo

4
console.log = stdout, console.error = stderr
Craig Wayne

9
developer.mozilla.org/en-US/docs/Web/API/Console/info - "Firefox ve Chrome'da, Web Konsolu günlüğünde bu öğelerin yanında küçük bir" i "simgesi görüntülenir" - image.ibb .co / gYrZHe / infolog.png
ed

4
@EdwardSammutAlessi Chrome kullanıyorum ve yeniden oluşturamadım ve i simgesinin görünmesini
sağlayamadım

Bir veri noktası: Firefox 78: log.info çıktısından önce ⓘ (daire içinde i) yazar. Chrome 84: yok.
Tom Hundt

34

İken console.logve console.infofarklı olmayabilir, sadece boyama hariç diğer kullanımları vardır. Örneğin, eslint gibi bir linter kullanırken, console.logbir uyarı mesajı vermeyi ayarlayabilirsiniz . Diyelim ki yalnızca console.loggeliştirme amaçlarınız console.infoiçin kullanmak ve son kullanıcıların ihtiyaç duyabileceği bilgiler için kullanmak istiyorsunuz . Bir linter ile, artık console.loggeliştirme sırasında size yardımcı olan, ancak taahhütlerden / yayınlamadan önce kaldırılması gereken geçici olarak görünür ve doğrudan bir hatırlatıcınız var .


3
Bu yanıtı neden diğerlerinden daha uygun bulduğumu bilmiyorum, güzel olan @Figidon.
Shreyan Mehta

1
Hemfikirim Geliştirme ve üretim modu için eslint ile kullanmak için harika bir çözüm. Console.log'u geçemezsiniz! (asa ve kılıç elinde)
Tomas Vancoillie

26

Dokümanlara göre oldukça açık.

console.info ([data], [...]) # console.log ile aynı.

console.error ([data], [...]) # console.log ile aynı, ancak stderr'e yazdırır.

console.warn ([data], [...]) # console.error ile aynıdır.

Bu, hiçbir fayda veya dezavantaj olmadığı anlamına gelir. info== logve warn== error. Eğer yazdırmak istediğiniz sürece stderr, infove ya logçalışacaktır.


23

Görsel olarak, aslında arasında fark yok console.log, console.info, console.warnyanı sıra console.errorilgili sunucu tarafında (terminal) .

Ancak, orada hafif modüller eklemek mavi, turuncu ve kırmızı renkler için console.info, console.warnyanı sıra console.errorsırasıyla. Bununla, konsol API'si istemci tarafı gibi davranır.

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

görüntü açıklamasını buraya girin


9

Kabul edilen cevaba ek olarak bir ayrıntı daha: Chrome ve FireFox'ta, console.infogünlük satırları küçük bir i simgesi ile önek olarak gelirken, console.logsatırlar yoktur. warnve errorsatırlar , sırasıyla küçük bir üçgen ve x ile başlar .


Başka bir yerde görüldüğü gibi: Firefox 78: log.info çıktısından önce ⓘ (daire içinde i) yazar. Chrome 84: değil
Tom Hundt

3

stdin Kullanıcıdan gelen girdiyi okumak için okunabilir bir akış.

standart çıkış Eşzamanlı veya eşzamansız olarak yazılabilir bir akış.

stderr Hata mesajları için tasarlanmış eşzamanlı yazılabilir akışı engelleyen bir akış.

Standart çıktı veya engellemeyen işlevler şunlardır: console.log, console.info, util.puts, util.print ve Stderr.

Bloke functons şunlardır: console.warn, console.error, util.debug ve process.stdin (kullanım giriş almak için okunabilir bir akım).


1

Günlük ve bilginin temelde aynı şey olduğu tespit edildi, ancak soruyu tamamen yanıtladığından emin değilim:

Console.log ve console.info kullanmanın faydası nedir?

Daha önce bahsedilenlerin dışında bir yararı, her birini farklı bir amaç için kullanabilmenizdir. Örneğin, console.log'u sadece hızlı hata ayıklama ve bir şeyleri konsola bildirmek için kullanabilirken, console.info'yu kodunuzda konsola çıkarmak istediğiniz kalıcı mesajlar için, örneğin mevcut uygulama durumu hakkında bilgiler gibi kullanabilirsiniz. . Ardından, konsolunuzda rastgele bir nesnenin yazdırıldığı bir durum olduğunda ve orada bir yerde yanlışlıkla bir günlük ifadesi bıraktığınızı fark ettiğinizde, 'console.log' için genel bir arama yapabilir ve her örneği silebilir ve kendinize güvenebilirsiniz. orada bırakmak istediğiniz önemli hiçbir şeyi silmediniz.


0

Farklı günlük seviyeleri, konsolunuzdaki gürültü seviyesini yönetmenize olanak tanır : Hem Firefox'ta (şu anda 78 kullanıyorum) hem de Chrome (84) geliştiricilerinde, js konsolu, istediğiniz çıktı "hata ayıklama seviyesini" seçmenize olanak tanır görmek. FF Eğer görünürlüğünü değiştirmek için kullanabileceğiniz console.error, .warn, .log, .info, ve .debugChrome oysa öğelerin yanında Onay işaretli bir açılır menü vardır (( "kapalı" olduğunda, bastırıldı kaç göstermek) her biri için ayrı düğmeleri tıklayarak mesajların .infove .logkontrol edilir "Bilgi" olanı ve .debug"Ayrıntılı" ile). Çıktı bastırılmışsa, Chrome açılır etiketi ("Tüm düzeyler" veya ayarladığınız her şey) kırmızıya döner.


0

console.logHata ayıklama için durum bilgilerinin geçici olarak günlüğe kaydedilmesinin nerede olduğunu gördüm .

console.info daha kalıcı bir şeydir - örneğin bir şeyin hangi bağlantı noktasında çalıştığını söylemek ve hata ayıklamayı bitirdikten sonra kesmeyeceğiniz bir şey.

Bu, işlemek için kodunuzu temizlemeyi kolaylaştırır. Hatta, console.log'un işlenmesini önlemek için linter'ınızın bir kuralı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.