I'd like to know if there is a way in javascript to retrieve console history.
What I mean by console history is what appears in the dev tools console. For instance, I'd like to print in a html page all errors, warnings, info and log that are displayed in my dev tools without opening them.
Let me know if I'm not clear.
Chrome extensions had an API for that, experimental.devtools.console:
chrome.experimental.devtools.console.getMessages(function(messages) { })
This API has been removed.
I wrote a simple cross-browser library for this, called console.history
. It's available on GitHub:
https://git.io/console
What the library basically does is catch all calls to console.[log/warn/error/debug/info]
and store them in the console.history
array. As a bonus, a full stack trace is also added.
Test file test.js
contains:
function outer() {
inner();
}
function inner() {
var array = [1,2,3];
var object = {"foo": "bar", "key": "value"};
console.warn("Something went wrong, but we're okay!", array, object);
}
outer();
The entry to console.history
will be:
{
"type": "warn",
"timestamp": "Thu, 01 Sep 2016 15:38:28 GMT",
"arguments": {
"0": "Something went wrong, but we're okay!",
"1": [1, 2, 3],
"2": {
"foo": "bar",
"key": "value"
}
},
"stack": {
"0": "at inner (http://localhost:1337/test/test.js:6:11)",
"1": "at outer (http://localhost:1337/test/test.js:2:3)",
"2": "at http://localhost:1337/test/test.js:9:1"
}
}
There is no way to get the console data with JavaScript. Only way you would be able to do it is basically hijack all the console functions and store a copy and than call the default log lines.
console.history = [];
var oldConsole = {};
for (var i in console) {
if (typeof console[i] == 'function') {
oldConsole[i] = console[i];
var strr = '(function(){\
console.history.push({func:\'' + i + '\',args : Array.prototype.slice.call(arguments)});\
oldConsole[\'' + i + '\'].apply(console, arguments);\
})';
console[i] = eval(strr);
}
}
And then use console.history to access history
来源:https://stackoverflow.com/questions/13763361/get-console-history