いつも似たようなデバッグコード書いてる気がする

ちゃんと作らないからいつも適当。
Safariでもconsoleのformatterを使わなかったら落ちずに行けるみたい。

var DEBUG = true;
if(DEBUG && typeof console == 'undefined') {
  var elem  = document.createElement('div');
  elem.id = 'debug-console';
  elem.style.position = 'absolute';
  elem.style.color = '#333';
  elem.style.zIndex = '65535';
  elem.style.backgroundColor = '#ddd';
  elem.style.border = '1px solid red';
  document.body.insertBefore(elem,document.body.firstChild);
  console = elem;
  console.log = function(message) {
    elem.innerHTML += '<p>' + message + '</p>';
  }
}
function debug_print(message) {
  if(!DEBUG) return;
  console.log(message);
}

OperaIEはdivに吐いて、Firefox+FirebugSafariはconsoleに吐く。