mirror of
https://github.com/log4js-node/log4js-node.git
synced 2025-12-08 19:26:01 +00:00
add a stderr appender
Thus functions almost identically to the consoleAppender except that instead of logging through `console.log` it uses `process.stderr.write`.
This commit is contained in:
parent
4488fa3464
commit
5e64fbd90b
21
lib/appenders/stderr.js
Normal file
21
lib/appenders/stderr.js
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
|
||||
var layouts = require('../layouts')
|
||||
|
||||
function stderrAppender(layout, timezoneOffset) {
|
||||
layout = layout || layouts.colouredLayout;
|
||||
return function(loggingEvent) {
|
||||
process.stderr.write(layout(loggingEvent, timezoneOffset) + '\n');
|
||||
};
|
||||
}
|
||||
|
||||
function configure(config) {
|
||||
var layout;
|
||||
if (config.layout) {
|
||||
layout = layouts.layout(config.layout.type, config.layout);
|
||||
}
|
||||
return stderrAppender(layout, config.timezoneOffset);
|
||||
}
|
||||
|
||||
exports.appender = stderrAppender;
|
||||
exports.configure = configure;
|
||||
35
test/stderrAppender-test.js
Normal file
35
test/stderrAppender-test.js
Normal file
@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
var assert = require('assert')
|
||||
, vows = require('vows')
|
||||
, layouts = require('../lib/layouts')
|
||||
, sandbox = require('sandboxed-module');
|
||||
|
||||
vows.describe('../lib/appenders/stderr').addBatch({
|
||||
'appender': {
|
||||
topic: function() {
|
||||
var messages = []
|
||||
, fakeProcess = {
|
||||
stderr: {
|
||||
write: function(msg) { messages.push(msg); }
|
||||
}
|
||||
}
|
||||
, appenderModule = sandbox.require(
|
||||
'../lib/appenders/stderr',
|
||||
{
|
||||
globals: {
|
||||
'process': fakeProcess
|
||||
}
|
||||
}
|
||||
)
|
||||
, appender = appenderModule.appender(layouts.messagePassThroughLayout);
|
||||
|
||||
appender({ data: ["blah"] });
|
||||
return messages;
|
||||
},
|
||||
|
||||
'should output to stderr': function(messages) {
|
||||
assert.equal(messages[0], 'blah\n');
|
||||
}
|
||||
}
|
||||
|
||||
}).exportTo(module);
|
||||
Loading…
x
Reference in New Issue
Block a user