Waarom $log van angular gebruiken in plaats van console.log?

Ik begrijp dat het een goede gewoonte is om $logte gebruiken in plaats van console.log.
Ik kan echter geen goede documentatie vinden waarin de redenen worden uitgelegd. Waarom zou een ontwikkelaar $loggebruiken?


Antwoord 1, autoriteit 100%

$logcontroleert eerst of de browser console.logondersteunt (IE 8 bijvoorbeeld niet). Dit voorkomt dat fouten worden weergegeven op IE 8. Let op: dit betekent niet dat het iets op IE 8 zal loggen, het betekent gewoon dat het de fout niet zal genereren.

Daarnaast kun je versierenen spotten met $logvoor uitbreidings- en testdoeleinden, als u daartoe geneigd bent. Je zou het bijvoorbeeld kunnen versieren om in te loggen op een array voor IE 8-ondersteuning.

Een bonusfunctie: als je het een JavaScript Error-instantie doorgeeft, zal het proberen het netjes te formatteren. Dit kan worden gevonden door de broncode.

EDIT:“Het is niet zo dat IE 8 console.log niet ondersteunt. Het maakt alleen het console-object pas aan als de dev-tools zijn geopend.” Zie opmerkingen hieronder voor meer details.


Antwoord 2, autoriteit 12%

Om @Steve’s antwoord(wat correct is) in te vullen, $logheeft ook het voordeel dat het uitgeschakeldis. Met behulp van deze code kunt u de logboekregistratie uitschakelen van $log:

app.config(function($logProvider) {
  $logProvider.debugEnabled(true);
});

Dit is erg handig als u alle logboeken in één keer wilt uitschakelen, in plaats van ze regel voor regel handmatig te verwijderen.

Other episodes