summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/FireBugAppender.js
blob: 34d66234c29b3e3fe519834dd6ec3e38d39c41ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* ************************************************************************

   qooxdoo - the new era of web development

   http://qooxdoo.org

   Copyright:
     2006 by David Perez

   License:
     LGPL 2.1: http://www.gnu.org/licenses/lgpl.html

   Authors:
     * David Perez (david-perez)

************************************************************************ */

/* ************************************************************************

#module(core)
#module(log)

************************************************************************ */

/**
 * An appender that writes all messages to FireBug, a nice extension for debugging and developing under Firefox.
 * <p>
 * This class does not depend on qooxdoo widgets, so it also works when there
 * are problems with widgets or when the widgets are not yet initialized.
 * </p>
 */
qx.OO.defineClass('qx.dev.log.FireBugAppender', qx.dev.log.Appender, function() {
  qx.dev.log.Appender.call(this);
});

qx.Proto.appendLogEvent = function(evt)
{
  if (typeof console != 'undefined')
  {
    var log = qx.dev.log.Logger;
    var msg = this.formatLogEvent(evt);

    switch (evt.level)
    {
      case log.LEVEL_DEBUG:
        if (console.debug) {
          console.debug(msg);
        }
        break;
      case log.LEVEL_INFO:
        if (console.info) {
          console.info(msg);
        }
        break;
      case log.LEVEL_WARN:
        if (console.warn) {
          console.warn(msg);
        }
        break;
      default:
        if (console.error) {
          console.error(msg);
        }
        break;
    }
    // Force a stack dump, for helping locating the error
    if (evt.level > log.LEVEL_WARN && (!evt.throwable || !evt.throwable.stack) && console.trace)
    {
        console.trace();
    }
  }
}