Я згоден, що заглушка консолі - це хороший підхід. Я пробував різні консольні плагіни, фрагменти коду, включаючи деякі досить складні. Всі вони мали певні проблеми принаймні в одному браузері, тому в підсумку я отримав щось просте, як показано нижче, що є об’єднанням інших фрагментів, які я бачив, та кількох пропозицій від команди YUI. Здається, він функціонує в IE8 +, Firefox, Chrome та Safari (для Windows).
var debugMode = false;
var log = function (msg) {
debugMode && window.console && console.log ? console.log(msg) : null;
};
Примітка: Він підтримує вимкнення реєстрації на консолі через прапор. Можливо, ви також можете автоматизувати це за допомогою сценаріїв побудови. Крім того, ви можете виставити користувацький інтерфейс або інший механізм, щоб перевернути цей прапор під час виконання. Звичайно, ви можете отримати набагато складніший рівень реєстрації, подання журналів ajax на основі порогу журналу (наприклад, усі оператори рівня помилок передаються на сервер для зберігання там тощо).
Багато з цих потоків / питань навколо ведення журналу, здається, вважають оператори журналу кодом налагодження, а не інструментарієм коду . Звідси бажання видалити оператори журналу. Контрольно-вимірювальні прилади надзвичайно корисні, коли програма перебуває в дикій природі, і приєднати налагоджувач вже не так просто, або інформація надходить до вас від користувача або через підтримку. Ви ніколи не повинні реєструвати щось конфіденційне, незалежно від того, де це було зареєстровано, тому конфіденційність / безпека не повинна бути порушена. Як тільки ви вважаєте ведення журналу як контрольно-вимірювальних приладів, воно тепер стає виробничим кодом і повинно бути записано за тим самим стандартом.
З додатками, що використовують все більш складний javascript, я думаю, що інструментарій є критичним.