Console.log dosyası nedir?


414

Ne işe yarar console.log?

Lütfen bir kod örneğiyle JavaScript'te nasıl kullanılacağını açıklayın.

Yanıtlar:


454

Bu bir jQuery özelliği değil, hata ayıklama amaçlı bir özelliktir. Örneğin, bir şey olduğunda konsola bir şey kaydedebilirsiniz. Örneğin:

$('#someButton').click(function() {
  console.log('#someButton was clicked');
  // do something
});

Ardından #someButton was clickeddüğmeyi tıkladığınızda Firebug'un "Konsol" sekmesinde (veya başka bir aracın konsolu - örneğin Chrome'un Web Denetçisi) görürsünüz.

Bazı nedenlerden dolayı, konsol nesnesi kullanılamayabilir. O zaman bunun olup olmadığını kontrol edebilirsiniz - bu, üretime dağıtırken hata ayıklama kodunuzu kaldırmanız gerekmediği için yararlıdır:

if (window.console && window.console.log) {
  // console is available
}

17
Google Chrome'un Geliştirici araçlarında ayrıca bir konsol bulunur.
RobertPitt

8
"Bu, üretime dağıtırken hata ayıklama kodunuzu kaldırmanız gerekmediği için kullanışlıdır" <- Son kullanıcı Firebug'u açarsa ne olur?
AbdullahC

6
Ayrıca
Alan Whitelaw

4
Imho, console.log'un kullanılabilir olup olmadığını her seferinde kontrol etmekten daha iyi bir şeye sahip olmak daha iyidir: if (typeof (console) == 'undefined') {console = {'log': function () {return}}} In böyle bir durumda, varlığını kontrol etmeden ihtiyacınız olduğunda her zaman console.log yazabilirsiniz!
Enrico Carlesso

12
if (console.log)(veya çift if (console && console.log)) konsol yoksa hala hata verir. Kullanmanız window.console( windowgaranti edildiği gibi ) kullanmalı ve bir seferde yalnızca bir derinlik seviyesi kontrol etmelisiniz.
TGR

226

Konsolu görebileceğiniz yerler! Hepsini bir cevapta tutmak için.

Firefox

http://getfirebug.com/

(artık Firefox'un yerleşik geliştirici araçlarını Ctrl + Shift + J'yi de kullanabilirsiniz (Araçlar> Web Geliştiricisi> Hata Konsolu), ancak Firebug çok daha iyi; Firebug'u kullanın)

Safari ve Chrome

Temelde aynı.

https://developers.google.com/chrome-developer-tools/docs/overview

https://developer.apple.com/technologies/safari/developer-tools.html

Internet Explorer

IE9 veya IE10'da IE7 ve IE8 hatalarını ayıklamak için uyumluluk modlarını kullanabileceğinizi unutmayın

http://msdn.microsoft.com/en-us/library/ie/gg589507(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/dd565628(v=vs.85).aspx

IE7 için IE6'daki konsola erişmeniz gerekiyorsa Firebug Lite yer işareti uygulamasını kullanın

http://getfirebug.com/firebuglite/ kararlı yer işareti arayın

http://en.wikipedia.org/wiki/Bookmarklet

Opera

http://www.opera.com/dragonfly/

iOS

Tüm iPhone'lar, iPod touch ve iPad'ler için çalışır.

http://developer.apple.com/library/ios/ipad/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/DebuggingSafarioniPhoneContent/DebuggingSafarioniPhoneContent.html

Artık iOS 6 ile, cihazınızı takarsanız OS X'te Safari üzerinden konsolu görüntüleyebilirsiniz. Ya da emülatör ile bunu yapabilirsiniz, bir Safari tarayıcı penceresi açın ve "Geliştir" sekmesine gidin. Burada Safari denetçisinin cihazınızla iletişim kurmasını sağlamak için seçenekler bulacaksınız.

Windows Phone, Android

Her ikisinde de yerleşik konsol ve yer imi yeteneği yoktur. Bu yüzden http://jsconsole.com/ type: listen'i kullanırız ve HTML'nize yerleştirmeniz için bir komut dosyası etiketi verir. O andan itibaren konsolunuzu jsconsole web sitesinde görüntüleyebilirsiniz.

iOS ve Android

Ayrıca , uygun tarayıcı eklentilerini kullanarak herhangi bir cihazdaki web denetleyici araçlarına ve konsola erişmek için http://html.adobe.com/edge/inspect/ adresini kullanabilirsiniz .


Eski tarayıcı sorunları

Kodunuzda console.log kullanırsanız ve aynı zamanda geliştirici araçlarını açmazsanız son IE sürümleri kilitlenir. Neyse ki kolay bir düzeltme. Kodunuzun üst kısmında aşağıdaki kod snippet'ini kullanın:

 if(!window.console){ window.console = {log: function(){} }; } 

Bu, konsolun mevcut olup olmadığını kontrol eder ve eğer değilse, boş işlevli bir nesneye ayarlar log. Bu şekilde window.console ve window.console.log hiçbir zaman tam olarak gerçek değildirundefined.


26
Yanlışsa beni düzeltin, ancak konsolu görüntülemek için Firefox'ta Firebug'a gerek olmadığını düşünüyorum, sadece Ctrl + Shift + J (Araçlar> Web Geliştiricisi> Hata Konsolu)
Dane411

4
@ Dane411 bu doğrudur, ancak kundakçı daha iyi ve daha yaygın olarak kullanılır.
Fresheyeball

3
@Fresheyeball Birisi tüm çöpleri temizlemek zorunda, ama bir noktada bu temsilcileri hasat etmenin ve aslında toplumu temiz tutmanın daha az ilginç hale geldiğini düşünüyorum.
andlrc

2
Bu cevabı kim düşürdüyse, lütfen yorum yapın. yorum yapmadan downvotes işe yaramaz
Fresheyeball

window.console.log'dan önce window.dump vardı. Boş günlük işlevinden daha iyidir
OCTAGRAM

100

Kodunuzu incelemek için Firebug gibi bir araç kullanırsanız, konsola kaydedilen mesajları görüntüleyebilirsiniz. Diyelim ki bunu yaptınız:

console.log('Testing console');

Firebug'da konsola eriştiğinizde (veya kodunuzu incelemek için hangi aracı kullanmaya karar verirseniz), işleve günlüğe kaydetmesini istediğiniz mesajı görürsünüz. Bu, özellikle bir işlevin yürütülüp yürütülmediğini veya bir değişkenin düzgün bir şekilde iletilip iletilmediğini görmek istediğinizde yararlıdır. Aslında kodunuzda neyin yanlış gittiğini anlamak oldukça değerlidir.


10
IE'de hatalardan kaçınmak için önce tanımlamayı unutmayın: stackoverflow.com/a/7585409/318765
mgutt

83

Firebug veya Developer Tools (Chrome / Safari) gibi tarayıcının javascript konsoluna bir günlük mesajı gönderecek ve yürütüldüğü satırı ve dosyayı gösterecektir.

Dahası, bir jQuery Nesnesi çıkardığınızda, DOM'daki o öğeye bir başvuru içerir ve tıklandığında Öğeler / HTML sekmesinde o öğeye gider.

Çeşitli yöntemler kullanabilirsiniz, ancak Firefox'ta çalışması için Firebug'un açık olması gerektiğine dikkat edin, aksi takdirde tüm sayfa çökecektir. Günlüğe kaydettiğiniz şey ister değişken, dizi, nesne veya DOM öğesi olsun, nesnenin prototipi de dahil olmak üzere tam bir arıza verecektir (etrafında bir dürtme yapmak her zaman ilginçtir). İstediğiniz kadar bağımsız değişken de ekleyebilirsiniz; bunların yerine boşluklar gelir.

console.log(  myvar, "Logged!");
console.info( myvar, "Logged!");
console.warn( myvar, "Logged!");
console.debug(myvar, "Logged!");
console.error(myvar, "Logged!");

Bunlar her komut için farklı logolarla gösterilir.

Ayrıca console.profile(profileName);bir işlevi, komut dosyasını vb. Profillemeye başlamak için de kullanabilirsiniz . Ve sonra bitirin console.profileEnd(profileName);ve Chrome'daki Profiller sekmesinde görünecektir (FF ile bilmiyorum).

Tam bir referans için http://getfirebug.com/logging adresine gidin ve okumanızı tavsiye ederim. İzler, gruplar, profil oluşturma, nesne denetimi.

Bu yardımcı olur umarım!


1
Neden daha console.log("x:", x)iyi console.log("x:" + x)? A ,okunması daha kolay olduğu için hataya daha az yatkın +mı?
Kevin Meredith

Bence çok farklı şeyler çıkardığınızda okumak biraz daha kolay. Bu durumda muhtemelen +kesinlikle kullanıyor olmalı , ancak konsol işlevlerinde virgül de kullanabileceğinizi göstermek istedim. Ayrıca, değişkenlerin ikisi de tamsayı veya dizi ise sorunlardan kaçınır.
Fred

5
console.log("x:", x)çünkü ne zaman, önemli ölçüde daha iyidir xnesne veya dizi (ya da bir şey ama dize), bu dizeye dönüştürme olmadan, doğru görüntülenen alır.
Josef Kufner

34

JQuery ile ilgisi yoktur ve kullanmak isterseniz,

if (window.console) {
    console.log("your message")
}

Bu nedenle, kullanılabilir olmadığında kodunuzu kırmazsınız.

Yorumda önerildiği gibi, bunu tek bir yerde yürütebilir ve sonra console.lognormal olarak kullanabilirsiniz

if (!window.console) { window.console = { log: function(){} }; }

18
Bunun if(!window.console){ window.console = function(){}; }yerine tek bir yerde, sonra normal olarak console.log kullanmanızı öneririz .
Fresheyeball

23

console.logjQuery ile ilgisi yoktur. Hata ayıklayıcılar (Chrome hata ayıklayıcı ve Firebug dahil) tarafından sağlanan, bir komut dosyasının verileri (veya çoğu durumda nesneleri) JavaScript konsoluna kaydetmesine olanak tanıyan yaygın bir nesnedir.


19

console.loghata ayıklama bilgilerini bazı tarayıcılarda konsola kaydeder (Firebug yüklü Firefox, Chrome, IE8, Firebug Lite yüklü herhangi bir şey). Firefox'ta, nesneleri incelemenize veya HTML öğelerinin düzenini veya diğer özelliklerini incelemenize izin veren çok güçlü bir araçtır. JQuery ile ilgili değildir, ancak jQuery ile kullanılırken yaygın olarak yapılan iki şey vardır:

  • Firebug için FireQuery uzantısını yükleyin . Bu, diğer avantajların yanı sıra, jQuery nesnelerinin günlüğe kaydedilmesini daha güzel gösterir.

  • jQuery'nin zincirleme kod kurallarına daha uygun bir sarıcı oluşturun.

Bu genellikle böyle bir şey anlamına gelir:

$.fn.log = function() {
    if (window.console && console.log) {
        console.log(this);
    }
    return this;
}

daha sonra şöyle çağırabilirsiniz

$('foo.bar').find(':baz').log().hide();

jQuery zincirlerini kolayca kontrol etmek için.


16

console.log jQuery ile ilgisi yoktur.

Firebug gibi bir hata ayıklama konsoluna bir mesaj kaydeder.


16

Bir karışıklık bazen, bir metin mesajını console.log kullanarak nesnelerinizden birinin içeriğiyle birlikte günlüğe kaydetmek için, ikisinin her birini farklı bir bağımsız değişken olarak geçirmeniz gerektiğidir. Bu, çıktıları birleştirmek için + operatörünü kullanacak olmanız durumunda .toString(), nesnenizin yöntemini dolaylı olarak çağıracağından, bunları virgülle ayırmanız gerektiği anlamına gelir . Çoğu durumda bu açıkça geçersiz kılınmaz ve tarafından devralınan varsayılan uygulama Objectherhangi bir yararlı bilgi sağlamaz.

Konsolda denemek için örnek:

>>> var myObj = {foo: 'bar'}
undefined
>>> console.log('myObj is: ', myObj);
myObj is: Object { foo= "bar"}

bilgilendirici kısa mesajı nesnenin içeriği ile birleştirmeyi denerseniz, şunları elde edersiniz:

>>> console.log('myObj is: ' + myObj);
myObj is: [object Object]

Bu nedenle, console.log'un aslında istediğiniz kadar argüman aldığını unutmayın.


13

console.logSayfanıza hata ayıklama bilgileri eklemek için kullanın .

Birçok kişi alert(hasNinjas)bu amaçla kullanır , ancak console.log(hasNinjas)çalışması daha kolaydır. Bir uyarı kullanıldığında, kullanıcı arabirimini engelleyen kalıcı bir iletişim kutusu açılır.

Düzenleme: Baptiste Pernet ve Jan Hančič ile anlaşılırsa, window.consoleilk olarak tanımlanıp tanımlanmadığını kontrol etmek için çok iyi bir fikir olduğunu kabul edersiniz, böylece hiçbir konsol mevcut değilse kodunuz kırılmaz.


12

Bir örnek - varsayalım, programınızı hangi kod satırını çalıştırabileceğinizi (kırmadan önce!) Bilmek istediğinizi yazmanız yeterlidir.

console.log("You made it to line 26. But then something went very, very wrong.")

11

Firefox için Firebug veya WebKit tarayıcılarında JavaScript konsolu ile JavaScript kodunda hata ayıklamak için kullanırsınız .

var variable;

console.log(variable);

Bir dizi veya nesne olsa bile, değişkenin içeriğini görüntüler.

PHPprint_r($var); için benzer .


3
Kullanışlı bir ipucu ... Hep bir küresel erişilebilir javascript dosyasında şunlardır: if (!window.console) { window.console = { log : function() {} }; }. Bu, ara sıra hata ayıklama deyimini kaldırmayı unutmadan kurtulmanızı sağlar.
Ocak'ta

@roufamatic Bilmiyorum ... kod ekleme, ait olmayan kodu işlemek için, oldukça korkunç bir çözüm gibi görünüyor ... özellikle bul / değiştir çok kolay olduğunda ...
jondavidjohn

10

Dikkat: üretim kodunuzda konsola çağrı yapmak sitenizin Internet Explorer'da bozulmasına neden olur. Asla ambalajından çıkarmayın. Bkz. Https://web.archive.org/web/20150908041020/blog.patspam.com/2009/the-curse-of-consolelog


2
Bir Windows makinesi kullanıyorsanız konsol günlüğü bozulamaz, ancak Internet Explorer kullanıyorsanız sitenizi bozacaktır.
Kris Hollenbeck

Cevapta atıfta bulunulan blogun artık mevcut olmadığını düşünüyorum.
Tsundoku

Orijinal bağlantı öldü. Bir Web Arşivi kopyası buldum.
Alex

8

İlk günlerde JS hata ayıklama alert()işlevi aracılığıyla gerçekleştirildi - şimdi eski bir uygulamadır.

Bu console.log(), Webkit veya Firebug gibi hata ayıklama konsolunda oturum açmak için bir mesaj yazan bir işlevdir . Bir tarayıcıda ekranda hiçbir şey görmezsiniz. Hata ayıklama konsoluna bir ileti kaydeder. Yalnızca Firebug yüklü Firefox'ta ve Webkit tabanlı tarayıcılarda (Chrome ve Safari) kullanılabilir. Tüm IE sürümlerinde iyi çalışmaz .

Konsol nesnesi, DOM'nin bir uzantısıdır.

console.log()Sadece geliştirme ve hata ayıklama sırasında kodunda kullanılmalıdır.

Birisinin console.log()üretim sunucusundaki javascript dosyasında kalması kötü bir uygulama olarak kabul edilir .


5

Tarayıcınız hata ayıklamayı destekliyorsa, JavaScript değerlerini görüntülemek için console.log () yöntemini kullanabilirsiniz.

Tarayıcınızda hata ayıklamayı ile etkinleştirin F12ve hata ayıklayıcı menüsünden "Konsol" u seçin.

JavaScript'te konsol. Çalışmayan bir JavaScript programını düzeltmeye veya "hata ayıklamaya" çalışın ve console.log () komutunu kullanarak pratik yapın. Kullandığınız tarayıcıya bağlı olarak JavaScript konsoluna erişmenize yardımcı olacak kısayollar vardır:

Chrome Konsolu Klavye Kısayolları

Windows: Ctrl+ Shift+ J
Mac: Cmd+ Option+J

Firefox Konsolu Klavye Kısayolları

Windows: Ctrl+ Shift+ K
Mac: Cmd+ Option+K

Internet Explorer Konsolu Klavye Kısayolları

F12 anahtar

Safari Konsolu Klavye Kısayolları

Cmd+ Option+C


4

console.logözellikle geliştiricilerin kodun ne yaptığını dikkatsizce bilgilendirmek için kod yazmalarına yönelik bir yöntemdir. Bir sorun olduğu konusunda sizi uyarmak için kullanılabilir, ancak kodda hata ayıklama zamanı geldiğinde etkileşimli bir hata ayıklayıcının yerini almamalıdır. Eşzamansız doğası, kaydedilen değerlerin yöntem çağrıldığında mutlaka değeri temsil etmediği anlamına gelir .

Kısaca: hataları console.log(varsa) ile günlüğe kaydedin, ardından hata ayıklayıcıyı kullanarak hataları düzeltin: Firebug , WebKit Geliştirici Araçları ( Safari ve Chrome'da yerleşik ), IE Geliştirici Araçları veya Visual Studio.


4

console.logHata ayıklamaya başladığımda gerçekten web programlamayı kolay hissediyorum .

var i;

Çalışma izamanının değerini kontrol etmek istersem ..

console.log(i);

iFirebug'ın konsol sekmesinde geçerli değerini kontrol edebilirsiniz . Özellikle hata ayıklama için kullanılır.


4

Firebug konsolunda oturum açmak (ilettiğiniz herhangi bir şey) için kullanılır . Temel kullanım JavaScript kodunuzda hata ayıklamak olacaktır.


4

Yukarıda belirtilen kullanımların dışında console.log, terminalde de yazdırabilirsiniz node.js. Express ile oluşturulan bir sunucu (örneğin.) console.logÇıktı günlüğü dosyasına yazmak için kullanabilir .


2

Java komut dosyalarında giriş ve çıkış işlevleri yoktur. Bu nedenle kod konsolu hata ayıklamak için .log () yöntemi kullanılır. Konsol günlüğü (geliştirme araçları) altında yazdırılacaktır.

IE geliştirme aracını açana kadar IE8 ve altında mevcut değildir.


2

Bu jQuery ile başa çıkmak için bir şey değil. Bu console.log(), tarayıcının konsoluna bilgi kaydetme yöntemleri sağlayan konsol nesnesinin günlük işlevine başvuruyor. Bu yöntemler yalnızca hata ayıklama amaçlıdır ve son kullanıcılara bilgi sunmak için kullanılmamalıdır.

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.