Зачем использовать angular $log вместо console.log?

Я понимаю, что в angular лучше использовать $log вместо console.log. Однако я не могу найти хорошую документацию, объясняющую причины. Почему разработчик должен использовать $log?

Ответ 1

$log сначала проверяет, поддерживает ли браузер console.log (например, IE 8). Это предотвращает появление ошибок в IE 8. Примечание: это не означает, что он будет записывать что-либо в IE 8, это просто означает, что он не выкинет ошибку.

Кроме того, он также позволяет украшать и макет $log для расширения и тестирования, если вы так склонны. Вы могли бы, например, украсить его для входа в массив для поддержки IE 8.

Бонусная функция: если вы передадите ему экземпляр JavaScript Error, он попытается отформатировать его красиво. Это можно узнать, прочитав исходный код .

EDIT: "Дело не в том, что IE 8 не поддерживает console.log. Он просто не создает объект консоли до тех пор, пока инструменты dev не будут открыты". Подробнее см. Комментарии ниже.

Ответ 2

Чтобы завершить @Steve answer (что правильно), $log также имеет преимущество отключить. Используя этот код, вы можете отключить ведение журнала из $log:

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

Это очень удобно, если вы хотите отключить все журналы одновременно, а не удалять их по строкам вручную.