console.log を画面上に出力
console.logをコンソール上ではなく画面上に表示
jQuery
$(function () {
// 型判別
// http://bonsaiden.github.io/JavaScript-Garden/#types.typeof
function is(type, obj) {
var clas = Object.prototype.toString.call(obj).slice(8, -1);
return obj !== undefined && obj !== null && clas === type;
}
// is('String', 'test'); // true
// is('String', new String('test')); // true
// 展開
function msgDump(expression){
var str = '(' + typeof expression + ') ';
if (typeof expression == 'object') {
$.each(expression, function(i){
if (is('object', this)) {
// 再展開
str += i + ': ' + msgDump(this) + '\n';
} else {
str += i + ': ' + this + '\n';
}
});
} else {
str += expression + '\n';
}
return str;
}
// 画面出力
$('#log').html('');
console.log = function(msg) {
$('#log').append(msgDump(msg).replace(/\n/g, '<br>'));
// PHPでファイル出力
var param = {
log: msgDump(msg)
};
$.post(
'logger.php',
param
);
}
console.log(1);
console.log('apple');
console.log(['リンゴ', 'バナナ']);
console.log({apple:1, banana:2});
});
HTML
<div id="log"></div>
PHP
$log = filter_input(INPUT_POST, 'log');
error_log($log, 3, '/path/to/dir/' . date('Ymd') . '.log');
サンプル