Экспорт журнала консоли Javascript из Google Chrome - PullRequest
9 голосов
/ 12 августа 2010

Есть ли способ экспортировать сообщения, зарегистрированные на консоли javascript в Google Chrome?

Если нет, может ли кто-нибудь предложить хороший способ диагностики проблем с JavaScript на компьютере клиента? Мне не удалось воспроизвести проблемы локально, несмотря на настройку идентичной среды.

Ответы [ 4 ]

17 голосов
/ 12 августа 2010

Шаг 1: добавьте несколько операторов console.log, которые помогут диагностировать вашу проблему

Шаг 2: Добавьте логику для переопределения console.log в системе вашего клиента, чтобы он фактически сохранял свои аргументы вwindow.log (или что-то еще) вместо фактической регистрации их на консоли.

window.log = []
console = console || {"log":function(x) {window.log.push(x);}}

Шаг 3: Добавьте обработчик onUnload, который запускает AJAX-запрос на ваш сервер с содержимым window.log как единое целоеего параметров

Шаг 4: Прибыль!; -)

Дополнительным бонусом для этой системы является то, что (после ее настройки) вы можете использовать console.log без разбора, и независимо от того, находитесь ли вы в своей среде разработки или в своей среде, она будет работать правильновещь.

7 голосов
/ 12 августа 2010

Вот немного более короткая / простая версия моего предыдущего ответа.Чтобы упростить задачу, мы просто сделаем вызов AJAX для каждого журнала, а чтобы еще проще сделать это, мы будем использовать jQuery для выполнения «тяжелой работы».(Если вы используете библиотеку JS, отличную от jQuery, у нее должен быть какой-то похожий метод; если нет, или если вы не используете библиотеку JS ... пора серьезно рассмотреть jQuery!), и мы добавим некоторый псевдокод на стороне сервера, чтобы продемонстрировать, насколько проста эта часть уравнения.

Шаг 1: Добавьте несколько операторов console.log, которые помогут диагностировать вашу проблему

Шаг 2: Добавьте логику для переопределения console.log в системе вашего клиента, чтобы он отправлял журнал на ваш сервер, если консоли нет

var SERVER_URL = "www.yourServer.com/ajaxLogger.jsp";
var ajaxConsole = {"log":function(x) {
    $.get(SERVER_URL, {"log":x});
}}
console = console || ajaxConsole; // If there is no console, use the AJAX one

Шаг 3: Создайте запись в журналстраница на вашем сервере

В следующем примере используется псевдокод, поскольку у каждого свой серверный язык:

String log = pageParameters["log"];
Database.execute("INSERT INTO yourLogTable (log, date) VALUES ('" +
        dbEscape(log) +"', current date)");
1 голос
/ 29 сентября 2014

Существует инструмент с открытым исходным кодом, который позволяет сохранить все выходные данные console.log в файл на вашем сервере - JS LogFlush (plug!).

JS LogFlush - это интегрированное решение для ведения журнала JavaScript, которое включает:

  • кросс-браузерную замену console.log - на стороне клиента -
  • система хранения журналов -на стороне сервера.

Демо

1 голос
/ 12 августа 2010

Вы можете использовать мою библиотеку логирования JavaScript, log4javascript . Вам нужно будет:

  • Настройка log4javascript для отправки сообщений регистрации на сервер с помощью AjaxAppender (см. Краткое руководство по , внизу)
  • Добавить запись звонков в ваш JavaScript
  • Сбор сообщений журнала на сервере с использованием выбранной вами технологии
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...