             class: "tapestry-console",
             """
               <div class="message-container"></div>
-              <button data-action="clear" class="btn btn-mini"><i class="icon-remove"></i> Clear Console</button>
-              <button data-action="enable" class="btn btn-mini" disabled="true"><i class="icon-play"></i> Enable Console</button>
-              <button data-action="disable" class="btn btn-mini"><i class="icon-pause"></i> Disable Console</button>
+              <div class="row-fluid">
+                <button data-action="clear" class="btn btn-mini"><i class="icon-remove"></i> Clear Console</button>
+                <button data-action="enable" class="btn btn-mini" disabled="true"><i class="icon-play"></i> Enable Console</button>
+                <button data-action="disable" class="btn btn-mini"><i class="icon-pause"></i> Disable Console</button>
+                <input class="search-query input-xlarge" size="40" placeholder="Filter console content">
+              </div>
               """
 
           dom.body.prepend floatingConsole
 
-          alertContainer = floatingConsole.findFirst ".message-container"
+          messages = floatingConsole.findFirst ".message-container"
 
           floatingConsole.on "click", "[data-action=clear]", ->
             floatingConsole.hide()
-            alertContainer.update ""
+            messages.update ""
 
           floatingConsole.on "click", "[data-action=disable]", ->
 
             @attribute "disabled", true
             floatingConsole.findFirst("[data-action=enable]").attribute "disabled", false
 
-            alertContainer.hide()
+            messages.hide()
 
             return false
 

            @attribute "disabled", true
            floatingConsole.findFirst("[data-action=disable]").attribute "disabled", false

            alertContainer.show()

            return false

        alertContainer.append """
          <div class="#{className}">#{_.escape message}</div>
          """

        # Make sure the console is visible, even if disabled.
        floatingConsole.show()

        # A slightly clumsy way to ensure that the container is scrolled to the bottom.
        _.delay -> alertContainer.element.scrollTop = alertContainer.element.scrollHeight

    level = (className, consolefn) ->
      (message) ->


    nativeConsole = {}
    floatingConsole = null
    messages = null

    noFilter = -> true

    filter = noFilter

    updateFilter = (text) ->
      if text is ""
        filter = noFilter
        return

      text = text.toLowerCase()

      filter = (e) ->
        e.element.innerText.toLowerCase().indexOf(text) >= 0

      return

    forceFloating = (dom.body.attribute "data-floating-console") == "true"

