Я понимаю, что в angular лучше использовать $log
вместо console.log
.
Однако я не могу найти хорошую документацию, объясняющую причины. Почему разработчик должен использовать $log
?
Зачем использовать angular $log вместо console.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);
});
Это очень удобно, если вы хотите отключить все журналы одновременно, а не удалять их по строкам вручную.