]> git.proxmox.com Git - sencha-touch.git/blobdiff - src/src/log/writer/Writer.js
import Sencha Touch 2.4.2 source
[sencha-touch.git] / src / src / log / writer / Writer.js
diff --git a/src/src/log/writer/Writer.js b/src/src/log/writer/Writer.js
new file mode 100644 (file)
index 0000000..64013c4
--- /dev/null
@@ -0,0 +1,57 @@
+//<feature logger>
+Ext.define('Ext.log.writer.Writer', {
+    extend: 'Ext.log.Base',
+
+    requires: ['Ext.log.formatter.Formatter'],
+
+    config: {
+        formatter: null,
+        filters: {}
+    },
+
+    constructor: function() {
+        this.activeFilters = [];
+
+        return this.callParent(arguments);
+    },
+
+    updateFilters: function(filters) {
+        var activeFilters = this.activeFilters,
+            i, filter;
+
+        activeFilters.length = 0;
+
+        for (i in filters) {
+            if (filters.hasOwnProperty(i)) {
+                filter = filters[i];
+                activeFilters.push(filter);
+            }
+        }
+    },
+
+    write: function(event) {
+        var filters = this.activeFilters,
+            formatter = this.getFormatter(),
+            i, ln, filter;
+
+        for (i = 0,ln = filters.length; i < ln; i++) {
+            filter = filters[i];
+
+            if (!filters[i].accept(event)) {
+                return this;
+            }
+        }
+
+        if (formatter) {
+            event.message = formatter.format(event);
+        }
+
+        this.doWrite(event);
+
+        return this;
+    },
+
+    // @private
+    doWrite: Ext.emptyFn
+});
+//</feature>