Merge branch 'master' of github.com:csausdev/log4js-node

unstable
csausdev 14 years ago
commit 682d95db69

@ -1,4 +1,4 @@
var log4js = require('./lib/log4js-node'); var log4js = require('./lib/log4js');
log4js.addAppender(log4js.consoleAppender()); log4js.addAppender(log4js.consoleAppender());
log4js.addAppender(log4js.fileAppender('cheese.log'), 'cheese'); log4js.addAppender(log4js.fileAppender('cheese.log'), 'cheese');

@ -55,7 +55,7 @@ var log4js = {
* @static * @static
* @final * @final
*/ */
version: "0.1.0", version: "0.1.1",
/** /**
* Date of logger initialized. * Date of logger initialized.
@ -119,8 +119,21 @@ exports.getDefaultLogger = log4js.getDefaultLogger = function() {
return log4js.getLogger(DEFAULT_CATEGORY); return log4js.getLogger(DEFAULT_CATEGORY);
}; };
exports.addAppender = log4js.addAppender = function (appender, categoryName) { /**
var category = categoryName || ALL_CATEGORIES; * args are appender, then zero or more categories
*/
exports.addAppender = log4js.addAppender = function () {
var args = Array.prototype.slice.call(arguments);
var appender = args.shift();
if (args.length == 0) {
args = [ ALL_CATEGORIES ];
}
//argument may already be an array
if (args[0].forEach) {
args = args[0];
}
args.forEach(function(category) {
if (!log4js.appenders[category]) { if (!log4js.appenders[category]) {
log4js.appenders[category] = []; log4js.appenders[category] = [];
} }
@ -135,13 +148,14 @@ exports.addAppender = log4js.addAppender = function (appender, categoryName) {
} else if (log4js.loggers[category]) { } else if (log4js.loggers[category]) {
log4js.loggers[category].addListener("log", appender); log4js.loggers[category].addListener("log", appender);
} }
});
}; };
exports.clearAppenders = log4js.clearAppenders = function() { exports.clearAppenders = log4js.clearAppenders = function() {
log4js.appenders = []; log4js.appenders = [];
for (var logger in log4js.loggers) { for (var logger in log4js.loggers) {
if (log4js.loggers.hasOwnProperty(logger)) { if (log4js.loggers.hasOwnProperty(logger)) {
log4js.loggers[logger].listeners.length = 0; log4js.loggers[logger].removeAllListeners("log");
} }
} }
}; };

@ -1,6 +1,6 @@
{ {
"name": "log4js", "name": "log4js",
"version": "0.1.0", "version": "0.1.1",
"description": "Port of Log4js to work with node.", "description": "Port of Log4js to work with node.",
"keywords": [ "keywords": [
"logging", "logging",

@ -1,11 +1,15 @@
fs = require('fs'), events = require('events'); describe 'log4js'
before
waitForWriteAndThenReadFile = function (filename) { extend(context, {
log4js : require("log4js"),
fs: require("fs"),
waitForWriteAndThenReadFile : function (filename) {
process.loop(); process.loop();
return fs.readFileSync(filename); return fs.readFileSync(filename, "utf8");
}; }
});
end
describe 'log4js'
before_each before_each
log4js.clearAppenders(); log4js.clearAppenders();
event = ''; event = '';
@ -44,7 +48,6 @@ describe 'log4js'
describe 'addAppender' describe 'addAppender'
before_each before_each
log4js.clearAppenders();
appenderEvent = undefined; appenderEvent = undefined;
appender = function(logEvent) { appenderEvent = logEvent; }; appender = function(logEvent) { appenderEvent = logEvent; };
end end
@ -68,6 +71,15 @@ describe 'log4js'
appenderEvent.should.be event appenderEvent.should.be event
otherEvent.should.be event otherEvent.should.be event
otherEvent = undefined;
appenderEvent = undefined;
log4js.getLogger('pants').debug("this should not be propagated to otherEvent");
otherEvent.should.be undefined
appenderEvent.should.not.be undefined
appenderEvent.message.should.be "this should not be propagated to otherEvent"
cheeseLogger = null;
end end
end end
@ -84,6 +96,45 @@ describe 'log4js'
end end
end end
describe 'with multiple categories'
it 'should register the function as a listener for all the categories'
log4js.addAppender(appender, 'tests', 'biscuits');
logger.debug('this is a test');
appenderEvent.should.be event
appenderEvent = undefined;
var otherLogger = log4js.getLogger('biscuits');
otherLogger.debug("mmm... garibaldis");
appenderEvent.should.not.be undefined
appenderEvent.message.should.be "mmm... garibaldis"
appenderEvent = undefined;
otherLogger = null;
log4js.getLogger("something else").debug("pants");
appenderEvent.should.be undefined
end
it 'should register the function when the list of categories is an array'
log4js.addAppender(appender, ['tests', 'pants']);
logger.debug('this is a test');
appenderEvent.should.be event
appenderEvent = undefined;
var otherLogger = log4js.getLogger('pants');
otherLogger.debug("big pants");
appenderEvent.should.not.be undefined
appenderEvent.message.should.be "big pants"
appenderEvent = undefined;
otherLogger = null;
log4js.getLogger("something else").debug("pants");
appenderEvent.should.be undefined
end
end
end end
describe 'basicLayout' describe 'basicLayout'
@ -132,7 +183,7 @@ describe 'log4js'
try { try {
fs.unlinkSync('./tmp-tests.log'); fs.unlinkSync('./tmp-tests.log');
} catch(e) { } catch(e) {
print('Could not delete tmp-tests.log: '+e.message); //print('Could not delete tmp-tests.log: '+e.message);
} }
end end
@ -171,12 +222,12 @@ describe 'log4js'
try { try {
fs.unlinkSync('./tmp-tests.log'); fs.unlinkSync('./tmp-tests.log');
} catch(e) { } catch(e) {
print('Could not delete tmp-tests.log: '+e.message); //print('Could not delete tmp-tests.log: '+e.message);
} }
try { try {
fs.unlinkSync('./tmp-tests-warnings.log'); fs.unlinkSync('./tmp-tests-warnings.log');
} catch (e) { } catch (e) {
print('Could not delete tmp-tests-warnings.log: '+e.message); //print('Could not delete tmp-tests-warnings.log: '+e.message);
} }
end end
@ -185,6 +236,8 @@ describe 'log4js'
//and sets the log level for "tests" to WARN //and sets the log level for "tests" to WARN
log4js.configure('spec/fixtures/log4js.json'); log4js.configure('spec/fixtures/log4js.json');
event = undefined; event = undefined;
logger = log4js.getLogger("tests");
logger.addListener("log", function(evt) { event = evt });
logger.info('this should not fire an event'); logger.info('this should not fire an event');
event.should.be undefined event.should.be undefined
@ -196,7 +249,6 @@ describe 'log4js'
it 'should handle logLevelFilter configuration' it 'should handle logLevelFilter configuration'
log4js.configure('spec/fixtures/with-logLevelFilter.json'); log4js.configure('spec/fixtures/with-logLevelFilter.json');
event = undefined;
logger.info('main'); logger.info('main');
logger.error('both'); logger.error('both');
@ -207,9 +259,14 @@ describe 'log4js'
waitForWriteAndThenReadFile('./tmp-tests-warnings.log').should.be 'both\nboth\n' waitForWriteAndThenReadFile('./tmp-tests-warnings.log').should.be 'both\nboth\n'
end end
end end
end end
describe 'Date' describe 'Date'
before
require("log4js");
end
describe 'toFormattedString' describe 'toFormattedString'
it 'should add a toFormattedString method to Date' it 'should add a toFormattedString method to Date'
var date = new Date(); var date = new Date();

@ -1,8 +1,6 @@
require.paths.unshift("./spec/lib", "./lib"); require.paths.unshift("./spec/lib", "./lib");
require("jspec"); require("jspec");
log4js = require("log4js-node");
var sys = require("sys"), fs = require("fs"); var sys = require("sys"), fs = require("fs");
quit = process.exit quit = process.exit
@ -11,7 +9,7 @@ print = sys.puts
readFile = function(path) { readFile = function(path) {
var result; var result;
try { try {
result = fs.readFileSync(path); result = fs.readFileSync(path, "utf8");
} catch (e) { } catch (e) {
throw e; throw e;
} }
@ -37,7 +35,7 @@ if (process.ARGV[2]) {
); );
} }
if (specsFound) { if (specsFound) {
JSpec.run({ reporter: JSpec.reporters.Terminal }); JSpec.run({ reporter: JSpec.reporters.Terminal, failuresOnly: false });
JSpec.report(); JSpec.report();
} else { } else {
print("No tests to run. This makes me sad."); print("No tests to run. This makes me sad.");

Loading…
Cancel
Save