Skip to content Skip to sidebar Skip to footer

Export Javascript Console Log From Google Chrome

Is there any way to export messages logged to the javascript console in Google Chrome? If not, can anyone suggest a good way to diagnose javascript problems on a client's machine?

Solution 1:

Step 1: Add a bunch of console.log statements that will help diagnose your issue

Step 2: Add logic to re-define console.log on your client's system so that it actually saves its arguments to window.log (or whatever) instead of actually logging them to the console.

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

Step 3: Add an onUnload handler which fires of an AJAX request to your server with the contents of window.log as one of its parameters

Step 4: Profit! ;-)

An added bonus to this system is that (once you have it setup) you can use console.log indiscriminately, and whether you're in your dev environment or your live environment it will do the correct thing.

Solution 2:

Here's a slightly shorter/simpler version of my previous answer. To keep things easy, we'll just make an AJAX call on every log, and to keep things even easier we'll use jQuery to do the "heavy lifting". (If you use a JS library other than jQuery, it should have some sort of similar method; if not, or if you're not using a JS library ... time to seriously consider jQuery!) Oh, and we'll throw in some server-side pseudo-code to demonstrate just how easy that part of the equation is.

Step 1: Add a bunch of console.log statements that will help diagnose your issue

Step 2: Add logic to re-define console.log on your client's system so that it sends the log to your server if there is no console

varSERVER_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

Step 3: Create a logging page on your server

The following example uses pseudo-code, since everyone has a different server-side language:

String log = pageParameters["log"];
Database.execute("INSERT INTO yourLogTable (log, date) VALUES ('" +
        dbEscape(log) +"', current date)");

Solution 3:

You could use my JavaScript logging library, log4javascript. You will need to:

  • Set up log4javascript to send logging messages to the server using AjaxAppender (see the quick start guide, near the bottom)
  • Add logging calls to your JavaScript
  • Collect logging messages on the server using your technology of choice

Solution 4:

There is open-source tool which allows you to save all console.log output in a file on your server - JS LogFlush (plug!).

JS LogFlush is an integrated JavaScript logging solution which include:

  • cross-browser UI-less replacement of console.log - on client side.
  • log storage system - on server side.

Demo

Post a Comment for "Export Javascript Console Log From Google Chrome"