google-closure kitaplığı, çoğu geliştiricinin aşina olması gereken bir logging system içerir. Bu güzel. Ne yazık ki, aldığınız çıktı, bazı tarayıcılar/eklentiler tarafından kullanılabilir olarak console.log
kullanıldığı zamanki gibi daha az etkileyici. Örneğin, console.log(window)
, Chrome'da yazıyorsanız, konsol, etkileşimli olarak inceleyebileceğiniz bir nesneyi gösterecektir. Google-closure logger'ı kullanırken bunu yapmayacaktır. Dahili olarak sadece nesnenizin dize temsilini console.log
'a geçireceğini varsayalım. Yani çok fazla rahatlık kaybedersin.Goog.debug.Logger` (`console.log` gibi) için daha iyi çıktı almak mümkün mü?
Bu nedenle, hala console.log
'u kullanmaya devam ediyorum. Ancak, kötü şanslar varsa, bunu üretim kodundan kaldırmayı unutursanız, kodunuz console.log
(f.ex .: IE) içermeyen tarayıcılarda bozulur.
window.console && window.console.log && console.log(...)
ya:
Alternatif olarak, örneğin, ilk varoluş kontrol ederek, bu karşı korumak mümkündür
if (DEBUG) {
console.log(...)
}
Ancak her iki çözümler mükemmel olmaktan uzaktır. Ve, kütüphanesinin kayıt çerçevesine sahip olduğu göz önüne alındığında, bunu kullanabilmek güzel olurdu. Şu anda olduğu gibi, console.log
'u çok daha kullanışlı buluyorum.
Benim soru (tl/dr): Ben x
bir dize temsilini kullanarak yerine bunun myLogger.info(x)
yazarken google-kapama kullanıcıyı console.log(x)
yapabilir miyim?
kritik bit 'goog.debug.expose' oldu. İlk olarak, kayıt çerçevesinin belgelerine baktığımda bunu özledim! Etkileşimli 'console.log' dökümü kadar uygun olmasa da, bu çoğu durumda iyi olur. Yani teşekkürler! – exhuma
Bu cevaptaki kodun hatalara neden olacağından korkuyorum. 'Goog.debug.Console' ifadesini kullandığınızda hemen 'goog.require ...' – hguser