У меня есть функция утилиты, которая обертывает console.log условием, поэтому мы вызываем только console.log, если мы находимся в среде dev, и console.log существует:
/* Console log if environment has debug true or #debug initially passed in URL */
metro.conlog = (function () {
return function (message) {
if ((metro.siteData.debug || metro.hashOptions.hasOwnProperty('debug')) && window.console && message) {
console.log(message);
}
};
}());
Это хорошо работает для обычных консольных журналов. Но недавно я обнаружил радости передачи более чем одного аргумента console.log: он позволяет вам префикс журнала консоли с помощью строки, поэтому console.log('DEBUG', object)
выводит строку плюс расширяемый объект, свойства, которые вы можете проверить. Как я могу изменить функцию conlog для этого? Я попытался вывести все аргументы следующим образом:
metro.conlog = (function () {
return function (message) {
if ((metro.siteData.debug || metro.hashOptions.hasOwnProperty('debug')) && window.console && message) {
console.log(arguments);
}
};
}());
Но это выводит аргументы как массив, а не опрятную строку, которую вы получаете с console.log. Вы можете увидеть разницу в этом скриншоте:
Может ли кто-нибудь сказать мне, как я могу воспроизвести исходный выход журнала?