Я пишу довольно большое программное обеспечение JavaScript. Мне нужно отслеживать вызовы, регистрировать события, отлаживать действия, поддерживать производительность и переносимость между браузерами.
Webkit и Firebug предлагают консольный объект с такими методами, как trace (), log (), error (), warning () и т. Д. Они великолепны, но что мне делать, если браузер IE или Opera?
Представьте, что у вас большое приложение, вы наверняка хотите увидеть все инициализации, которые оно выполняет, события, которые оно делает, и т. Д., Поэтому я делаю так, чтобы оно регистрировало их. Однако, если я просто зарегистрирую их, регистрация не будет работать в браузерах, в которых console не зарегистрировано в DOM. Я мог бы создать объект-оболочку:
MyNamespace.Console = {};
MyNamespace.Console.log = function(value) {
if (console!==undefined) {
console.log(value);
}
else {
// What should I do to log events on other browsers?
}
}
Из-за вышеизложенного в IE / Opera проблем не возникает, но как мне войти в IE (действительно нужно войти в IE!).
Кроме того, если я размещаю журналы везде в своем приложении, это замедляет меня, когда оно запускается в производственной среде? Должен ли я включить / выключить DEBUG и выполнить простую проверку перед регистрацией, что если DEBUG === true, то войти?
Как насчет таких систем, как Closure Compiler, можете ли вы сделать так, чтобы они убирали логи?
Что, если во время работы в производственной среде произошла ошибка, а запись в журнал не произошла, как отладить / найти проблему? И действительно, вы когда-нибудь отправляете журналы ошибок JavaScript вам (разработчику), чтобы убедиться, что у ваших клиентов нет проблем? Как это работает?
Я ценю любые отзывы / комментарии по отладке / ведению журнала с помощью JavaScript, я впервые пишу огромное приложение на JavaScript, и, честно говоря, я не уверен, что мне делать с этим ... отладка и ведение журнала в JavaScript, кажется, немного незаконченный.