Skip to content

Commit

Permalink
changed appenders to register themselves
Browse files Browse the repository at this point in the history
  • Loading branch information
doug-martin committed Aug 15, 2012
1 parent 9a16742 commit a4e3ca5
Show file tree
Hide file tree
Showing 11 changed files with 257 additions and 214 deletions.
Empty file added browser/comb.js
Empty file.
Empty file added examples/browser/define.html
Empty file.
22 changes: 22 additions & 0 deletions lib/logging/appenders/appender.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
var define = require("../../define.js").define, base = require("../../base"), Level = require("../level");


var APPENDER_TYPES = {};

/**
* @class Base class for all appenders
*
Expand Down Expand Up @@ -105,6 +108,25 @@ define(null, {
return this.__pattern;
}
}
},

"static":{
registerType:function (type) {
if (base.isString(type)) {
APPENDER_TYPES[type.toLowerCase()] = this;
}
return this;
},

createAppender:function (type, options) {
var caseType = type.toLowerCase();
if (caseType in APPENDER_TYPES) {
return new APPENDER_TYPES[caseType](options);
} else {
throw new Error(type + " appender is not registered!");
}

}
}

}).as(module);
52 changes: 26 additions & 26 deletions lib/logging/appenders/consoleAppender.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,31 @@ var define = require("../../define.js").define, base = require("../../base"), st
* @augments comb.logging.appenders.Appender
* @memberOf comb.logging.appenders
*/
exports = module.exports = define(Appender, {
instance : {
define(Appender, {
instance:{

constructor : function(options){
options = options || {};
!options.name && (options.name = "consoleAppender");
this._super(arguments, [options]);
},
constructor:function (options) {
options = options || {};
!options.name && (options.name = "consoleAppender");
this._super(arguments, [options]);
},

append : function(event) {
if (this._canAppend(event)) {
var message = format(this.__pattern, event);
var level = event.level;
if (Level.ERROR.equals(level) || Level.FATAL.equals(level)) {
console.log(style(message, "red"));
} else if(Level.WARN.equals(level)){
console.log(style(message, "yellow"));
}else if (Level.DEBUG.equals(level)) {
console.log(style(message, "magenta"));
} else if (Level.TRACE.equals(level)) {
console.log(style(message, "cyan"));
} else {
console.log(message);
}
}
}
}
});
append:function (event) {
if (this._canAppend(event)) {
var message = format(this.__pattern, event);
var level = event.level;
if (Level.ERROR.equals(level) || Level.FATAL.equals(level)) {
console.log(style(message, "red"));
} else if (Level.WARN.equals(level)) {
console.log(style(message, "yellow"));
} else if (Level.DEBUG.equals(level)) {
console.log(style(message, "magenta"));
} else if (Level.TRACE.equals(level)) {
console.log(style(message, "cyan"));
} else {
console.log(message);
}
}
}
}
}).registerType("ConsoleAppender").as(module);
6 changes: 2 additions & 4 deletions lib/logging/appenders/fileAppender.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ var define = require("../../define.js").define,
fs = require("fs");



/**
* @class Appends messages to a file.
*
Expand Down Expand Up @@ -47,7 +46,7 @@ var define = require("../../define.js").define,
* @param {Boolean} [options.overwrite=false] if true the log file is overwritten otherwise it is appended to.
* @ignoreCode
*/
exports = module.exports = define(Appender, {
define(Appender, {
instance:{

constructor:function (options) {
Expand All @@ -64,7 +63,6 @@ exports = module.exports = define(Appender, {
},



__onExit:function () {
var ret = new Promise();
var ws = this.__writeStream;
Expand All @@ -83,4 +81,4 @@ exports = module.exports = define(Appender, {
}
}
}
});
}).registerType("FileAppender").as(module);
8 changes: 4 additions & 4 deletions lib/logging/appenders/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/**@ignore*/
exports.Appender = require("./appender"),
exports.Appender = require("./appender");
/**@ignore*/
exports.ConsoleAppender = require("./consoleAppender"),
exports.ConsoleAppender = require("./consoleAppender");
/**@ignore*/
exports.FileAppender = require("./fileAppender"),
exports.FileAppender = require("./fileAppender");
/**@ignore*/
exports.JSONAppender = require("./jsonAppender"),
exports.JSONAppender = require("./jsonAppender");
/**@ignore*/
exports.RollingFileAppender = require("./rollingFileAppender");

2 changes: 1 addition & 1 deletion lib/logging/appenders/jsonAppender.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,4 @@ define(FileAppender, {
this._super(arguments);
}
}
}).as(module);
}).registerType("JSONAppender").as(module);
Loading

0 comments on commit a4e3ca5

Please sign in to comment.