test: add output '' when callstack info not exist

This commit is contained in:
Jimmy Huang 2019-05-20 11:39:19 +08:00
parent c49ea03ca6
commit ea6cbf06b0
2 changed files with 31 additions and 11 deletions

View File

@ -81,12 +81,8 @@ class Logger {
_log(level, data) {
debug(`sending log data (${level}) to appenders`);
let loggingEvent = null;
if (this.useCallStack) {
loggingEvent = new LoggingEvent(this.category, level, data, this.context, parseCallStack(new Error()));
} else {
loggingEvent = new LoggingEvent(this.category, level, data, this.context);
}
// eslint-disable-next-line max-len
const loggingEvent = new LoggingEvent(this.category, level, data, this.context, (this.useCallStack) && parseCallStack(new Error()));
clustering.send(loggingEvent);
}

View File

@ -301,11 +301,6 @@ test('log4js layouts', (batch) => {
assert.end();
});
t.test('%s should output stack', (assert) => {
testPattern(assert, layout, event, tokens, '%s', callStack);
assert.end();
});
t.test('%f should output filename', (assert) => {
testPattern(assert, layout, event, tokens, '%f', fileName);
assert.end();
@ -321,6 +316,35 @@ test('log4js layouts', (batch) => {
assert.end();
});
t.test('%s should output stack', (assert) => {
testPattern(assert, layout, event, tokens, '%s', callStack);
assert.end();
});
t.test('%f should output empty string when fileName not exist', (assert) => {
delete event.fileName;
testPattern(assert, layout, event, tokens, '%f', '');
assert.end();
});
t.test('%l should output empty string when lineNumber not exist', (assert) => {
delete event.lineNumber;
testPattern(assert, layout, event, tokens, '%l', '');
assert.end();
});
t.test('%o should output empty string when culumnNumber not exist', (assert) => {
delete event.columnNumber;
testPattern(assert, layout, event, tokens, '%o', '');
assert.end();
});
t.test('%s should output empty string when callStack not exist', (assert) => {
delete event.callStack;
testPattern(assert, layout, event, tokens, '%s', '');
assert.end();
});
t.test('should output anything not preceded by % as literal', (assert) => {
testPattern(assert, layout, event, tokens, 'blah blah blah', 'blah blah blah');
assert.end();