moved level colours into layouts where they belong, updated README
This commit is contained in:
parent
5868856a7d
commit
d7ffa59434
13
README.md
13
README.md
@ -2,12 +2,9 @@
|
||||
|
||||
This is a conversion of the [log4js](http://log4js.berlios.de/index.html)
|
||||
framework to work with [node](http://nodejs.org). I've mainly stripped out the browser-specific code
|
||||
and tidied up some of the javascript. It includes a basic file logger, with log rolling based on file size.
|
||||
|
||||
NOTE: since v0.2.0 require('log4js') returns a function, so you need to call that function in your code before you can use it. I've done this to make testing easier (allows dependency injection).
|
||||
|
||||
NOTE: I have disabled the console.log replacement which appeared in earlier versions, as console.log does some fancy formatting of output that log4js cannot handle. I don't want log4js breaking people's code mysteriously.
|
||||
and tidied up some of the javascript. It includes a basic file logger, with log rolling based on file size, and also replaces node's console.log functions.
|
||||
|
||||
NOTE: in v0.2.x require('log4js') returned a function, and you needed to call that function in your code before you could use it. This was to make testing easier. v0.3.x make use of [felixge's sandbox-module](https://github.com/felixge/sandbox-module), so we don't need to return a function.
|
||||
|
||||
## installation
|
||||
|
||||
@ -21,7 +18,7 @@ Tests now use [vows](http://vowsjs.org), run with `vows test/*.js`.
|
||||
|
||||
Minimalist version:
|
||||
|
||||
var log4js = require('log4js')();
|
||||
var log4js = require('log4js');
|
||||
var logger = log4js.getLogger();
|
||||
logger.debug("Some debug messages");
|
||||
|
||||
@ -31,7 +28,7 @@ By default, log4js outputs to stdout with the coloured layout (thanks to [masylu
|
||||
|
||||
See example.js:
|
||||
|
||||
var log4js = require('log4js')(); //note the need to call the function
|
||||
var log4js = require('log4js'); //note the need to call the function
|
||||
log4js.addAppender(log4js.consoleAppender());
|
||||
log4js.addAppender(log4js.fileAppender('logs/cheese.log'), 'cheese');
|
||||
|
||||
@ -68,7 +65,7 @@ the original log4js.
|
||||
|
||||
A connect/express logger has been added to log4js. This allows connect/express servers to log using log4js. See example-connect-logger.js.
|
||||
|
||||
var log4js = require('./lib/log4js')();
|
||||
var log4js = require('./lib/log4js');
|
||||
log4js.addAppender(log4js.consoleAppender());
|
||||
log4js.addAppender(log4js.fileAppender('cheese.log'), 'cheese');
|
||||
|
||||
|
@ -2,16 +2,27 @@ var dateFormat = require('./date_format')
|
||||
, util = require('util')
|
||||
, replacementRegExp = /%[sdj]/g
|
||||
, layoutMakers = {
|
||||
"messagePassThrough": function() { return messagePassThroughLayout; },
|
||||
"basic": function() { return basicLayout; },
|
||||
"colored": function() { return colouredLayout; },
|
||||
"coloured": function() { return colouredLayout; },
|
||||
"pattern": function (config) {
|
||||
"messagePassThrough": function() { return messagePassThroughLayout; }
|
||||
, "basic": function() { return basicLayout; }
|
||||
, "colored": function() { return colouredLayout; }
|
||||
, "coloured": function() { return colouredLayout; }
|
||||
, "pattern": function (config) {
|
||||
var pattern = config.pattern || undefined;
|
||||
return patternLayout(pattern);
|
||||
}
|
||||
}
|
||||
, colours = {
|
||||
ALL: "grey"
|
||||
, TRACE: "blue"
|
||||
, DEBUG: "cyan"
|
||||
, INFO: "green"
|
||||
, WARN: "yellow"
|
||||
, ERROR: "red"
|
||||
, FATAL: "magenta"
|
||||
, OFF: "grey"
|
||||
};
|
||||
|
||||
|
||||
function formatLogData(logData) {
|
||||
var output = ""
|
||||
, data = Array.isArray(logData) ? logData.slice() : Array.prototype.slice.call(arguments)
|
||||
@ -100,7 +111,7 @@ function basicLayout (loggingEvent) {
|
||||
* same as basicLayout, but with colours.
|
||||
*/
|
||||
function colouredLayout (loggingEvent) {
|
||||
return timestampLevelAndCategory(loggingEvent, loggingEvent.level.colour) + formatLogData(loggingEvent.data);
|
||||
return timestampLevelAndCategory(loggingEvent, colours[loggingEvent.level.toString()]) + formatLogData(loggingEvent.data);
|
||||
}
|
||||
|
||||
function messagePassThroughLayout (loggingEvent) {
|
||||
|
@ -1,7 +1,6 @@
|
||||
function Level(level, levelStr, colour) {
|
||||
function Level(level, levelStr) {
|
||||
this.level = level;
|
||||
this.levelStr = levelStr;
|
||||
this.colour = colour;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,13 +44,13 @@ Level.prototype.isGreaterThanOrEqualTo = function(otherLevel) {
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
ALL: new Level(Number.MIN_VALUE, "ALL", "grey")
|
||||
, TRACE: new Level(5000, "TRACE", "blue")
|
||||
, DEBUG: new Level(10000, "DEBUG", "cyan")
|
||||
, INFO: new Level(20000, "INFO", "green")
|
||||
, WARN: new Level(30000, "WARN", "yellow")
|
||||
, ERROR: new Level(40000, "ERROR", "red")
|
||||
, FATAL: new Level(50000, "FATAL", "magenta")
|
||||
, OFF: new Level(Number.MAX_VALUE, "OFF", "grey")
|
||||
ALL: new Level(Number.MIN_VALUE, "ALL")
|
||||
, TRACE: new Level(5000, "TRACE")
|
||||
, DEBUG: new Level(10000, "DEBUG")
|
||||
, INFO: new Level(20000, "INFO")
|
||||
, WARN: new Level(30000, "WARN")
|
||||
, ERROR: new Level(40000, "ERROR")
|
||||
, FATAL: new Level(50000, "FATAL")
|
||||
, OFF: new Level(Number.MAX_VALUE, "OFF")
|
||||
, toLevel: toLevel
|
||||
};
|
||||
|
@ -13,11 +13,10 @@ vows.describe('log4js layouts').addBatch({
|
||||
startTime: new Date(2010, 11, 5, 14, 18, 30, 45),
|
||||
categoryName: "cheese",
|
||||
level: {
|
||||
colour: "green",
|
||||
toString: function() { return "ERROR"; }
|
||||
}
|
||||
});
|
||||
assert.equal(output, '\033[32m[2010-12-05 14:18:30.045] [ERROR] cheese - \033[39mnonsense');
|
||||
assert.equal(output, '\033[31m[2010-12-05 14:18:30.045] [ERROR] cheese - \033[39mnonsense');
|
||||
},
|
||||
|
||||
'should support the console.log format for the message': function(layout) {
|
||||
@ -26,11 +25,10 @@ vows.describe('log4js layouts').addBatch({
|
||||
startTime: new Date(2010, 11, 5, 14, 18, 30, 45),
|
||||
categoryName: "cheese",
|
||||
level: {
|
||||
colour: "green",
|
||||
toString: function() { return "ERROR"; }
|
||||
}
|
||||
});
|
||||
assert.equal(output, '\033[32m[2010-12-05 14:18:30.045] [ERROR] cheese - \033[39mthing 2');
|
||||
assert.equal(output, '\033[31m[2010-12-05 14:18:30.045] [ERROR] cheese - \033[39mthing 2');
|
||||
}
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user