La libreria google-closure contiene anche uno logging system che dovrebbe essere familiare alla maggior parte degli sviluppatori. Questo è carino. Sfortunatamente, l'output ottenuto è meno espressivo come quando si utilizza console.log
come reso disponibile da alcuni browser/plug-in.È possibile ottenere un output migliore per `goog.debug.Logger` (come` console.log`)?
Ad esempio, se si scrive console.log(window)
in Chrome, la console visualizzerà un oggetto che è possibile ispezionare interattivamente. Quando si utilizza il registratore di chiusura di google, non lo farà. Suppongo che passerà internamente semplicemente una rappresentazione di stringa dell'oggetto a console.log
. Quindi perdi molta convenienza.
Per questo motivo, continuo a utilizzare console.log
. Ma poi, se per sfortuna, ti dimentichi di rimuoverlo dal codice di produzione, il tuo codice si romperà nei browser che non hanno console.log
(es .: IE).
In alternativa, è possibile evitare questo problema, verificando l'esistenza prima, per esempio:
window.console && window.console.log && console.log(...)
o:
if (DEBUG) {
console.log(...)
}
Ma entrambe le soluzioni sono ben lungi dall'essere perfetto. E, dato che la libreria ha un framework di registrazione, sarebbe bello poterlo usare. Come è adesso, trovo lo console.log
molto più utile a volte.
Quindi la mia domanda (TL/dr): Posso fare utente google-chiusura console.log(x)
quando scrivo myLogger.info(x)
invece di esso utilizzando una stringa-rappresentazione di x
?
Il bit critica che cercavo era 'goog.debug.expose'. L'ho perso quando ho iniziato a esaminare i documenti del framework di registrazione! Sebbene non sia conveniente come il dump interattivo 'console.log', questo andrà bene per la maggior parte dei casi. Quindi grazie! – exhuma
Ho paura che il codice in questa risposta causi errori. Dato che usi 'goog.debug.Console' immediatamente dopo averlo importato,' goog.require ... ' – hguser