Merge pull request #826 from log4js-node/update-streamroller

Update streamroller
This commit is contained in:
Gareth Jones 2019-01-24 08:53:42 +11:00 committed by GitHub
commit d9b92cc145
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 646 additions and 907 deletions

View File

@ -40,11 +40,11 @@ function colorize(str, style) {
return colorizeStart(style) + str + colorizeEnd(style);
}
function timestampLevelAndCategory(loggingEvent, colour, timezoneOffset) {
function timestampLevelAndCategory(loggingEvent, colour) {
return colorize(
util.format(
'[%s] [%s] %s - '
, dateFormat.asString(loggingEvent.startTime, timezoneOffset)
, dateFormat.asString(loggingEvent.startTime)
, loggingEvent.level
, loggingEvent.categoryName
)
@ -61,23 +61,18 @@ function timestampLevelAndCategory(loggingEvent, colour, timezoneOffset) {
*
* @author Stephan Strittmatter
*/
function basicLayout(loggingEvent, timezoneOffset) {
return timestampLevelAndCategory(
loggingEvent,
undefined,
timezoneOffset
) + util.format(...loggingEvent.data);
function basicLayout(loggingEvent) {
return timestampLevelAndCategory(loggingEvent) + util.format(...loggingEvent.data);
}
/**
* colouredLayout - taken from masylum's fork.
* same as basicLayout, but with colours.
*/
function colouredLayout(loggingEvent, timezoneOffset) {
function colouredLayout(loggingEvent) {
return timestampLevelAndCategory(
loggingEvent,
loggingEvent.level.colour,
timezoneOffset
loggingEvent.level.colour
) + util.format(...loggingEvent.data);
}
@ -122,7 +117,7 @@ function dummyLayout(loggingEvent) {
*
* @authors ['Stephan Strittmatter', 'Jan Schmidle']
*/
function patternLayout(pattern, tokens, timezoneOffset) {
function patternLayout(pattern, tokens) {
const TTCC_CONVERSION_PATTERN = '%r %p %c - %m%n';
const regex = /%(-?[0-9]+)?(\.?[0-9]+)?([[\]cdhmnprzxXy%])(\{([^}]+)\})?|([^%]+)/;
@ -156,7 +151,7 @@ function patternLayout(pattern, tokens, timezoneOffset) {
}
}
// Format the date
return dateFormat.asString(format, loggingEvent.startTime, timezoneOffset);
return dateFormat.asString(format, loggingEvent.startTime);
}
function hostname() {
@ -176,7 +171,7 @@ function patternLayout(pattern, tokens, timezoneOffset) {
}
function startTime(loggingEvent) {
return dateFormat.asString('hh:mm:ss', loggingEvent.startTime, timezoneOffset);
return dateFormat.asString('hh:mm:ss', loggingEvent.startTime);
}
function startColour(loggingEvent) {

1467
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -43,13 +43,13 @@
},
"dependencies": {
"circular-json": "^0.5.5",
"date-format": "^1.2.0",
"date-format": "^2.0.0",
"debug": "^3.1.0",
"rfdc": "^1.1.2",
"streamroller": "0.7.0"
"streamroller": "^1.0.1"
},
"devDependencies": {
"@log4js-node/sandboxed-module": "^2.1.0",
"@log4js-node/sandboxed-module": "^2.2.0",
"codecov": "^3.0.2",
"conventional-changelog": "^1.1.24",
"deep-freeze": "0.0.1",

View File

@ -2,6 +2,7 @@
const test = require('tap').test;
const sandbox = require('@log4js-node/sandboxed-module');
const realFS = require('fs');
const modulePath = 'some/path/to/mylog4js.json';
const pathsChecked = [];
@ -15,6 +16,9 @@ test('log4js configure', (batch) => {
fileRead = 0;
fakeFS = {
ReadStream: realFS.ReadStream, // need to define these, because graceful-fs uses them
WriteStream: realFS.WriteStream,
closeSync: () => {},
config: {
appenders: {
console: {

View File

@ -226,6 +226,18 @@ test('log4js configuration validation', (batch) => {
t.end();
});
batch.test('should not throw error if configure object is freezed', (t) => {
t.doesNotThrow(() => log4js.configure(deepFreeze({
appenders: {
dateFile: {
type: 'dateFile', filename: 'test/tap/freeze-date-file-test', alwaysIncludePattern: false
}
},
categories: { default: { appenders: ['dateFile'], level: log4js.levels.ERROR } }
})));
t.end();
});
batch.test('should load appenders from core first', (t) => {
const result = {};
const sandboxedLog4js = sandbox.require(
@ -346,17 +358,5 @@ test('log4js configuration validation', (batch) => {
t.end();
});
batch.test('should not throw error if configure object is freezed', (t) => {
t.doesNotThrow(() => log4js.configure(deepFreeze({
appenders: {
dateFile: {
type: 'dateFile', filename: 'test/tap/freeze-date-file-test', alwaysIncludePattern: false
}
},
categories: { default: { appenders: ['dateFile'], level: log4js.levels.ERROR } }
})));
t.end();
});
batch.end();
});

View File

@ -5,6 +5,7 @@ const path = require('path');
const fs = require('fs');
const log4js = require('../../lib/log4js');
const EOL = require('os').EOL || '\n';
const format = require('date-format');
function removeFile(filename) {
try {
@ -45,7 +46,7 @@ test('../../lib/appenders/dateFile', (batch) => {
date: {
type: 'dateFile',
filename: 'test/tap/date-file-test.log',
pattern: '-from-MM-dd',
pattern: '-yyyy-MM-dd',
layout: { type: 'messagePassThrough' }
}
},
@ -67,15 +68,13 @@ test('../../lib/appenders/dateFile', (batch) => {
});
batch.test('configure with options.alwaysIncludePattern', (t) => {
const format = require('date-format');
const options = {
appenders: {
date: {
category: 'tests',
type: 'dateFile',
filename: 'test/tap/date-file-test',
pattern: '-from-MM-dd.log',
pattern: 'yyyy-MM-dd.log',
alwaysIncludePattern: true,
layout: {
type: 'messagePassThrough'
@ -86,8 +85,9 @@ test('../../lib/appenders/dateFile', (batch) => {
};
const thisTime = format.asString(options.appenders.date.pattern, new Date());
const existingFile = path.join(process.cwd(), 'test/tap/', `date-file-test.${thisTime}`);
fs.writeFileSync(
path.join(__dirname, `date-file-test${thisTime}`),
existingFile,
`this is existing data${EOL}`,
'utf8'
);
@ -95,13 +95,13 @@ test('../../lib/appenders/dateFile', (batch) => {
const logger = log4js.getLogger('tests');
logger.warn('this should be written to the file with the appended date');
t.teardown(() => { removeFile(`date-file-test${thisTime}`); });
t.teardown(() => { removeFile(existingFile); });
// wait for filesystem to catch up
log4js.shutdown(() => {
fs.readFile(path.join(__dirname, `date-file-test${thisTime}`), 'utf8', (err, contents) => {
t.include(contents, 'this should be written to the file with the appended date');
fs.readFile(existingFile, 'utf8', (err, contents) => {
t.include(contents, 'this is existing data', 'should not overwrite the file on open (issue #132)');
t.include(contents, 'this should be written to the file with the appended date');
t.end();
});
});

View File

@ -203,7 +203,7 @@ test('log4js layouts', (batch) => {
const event = {
data: ['this is a test'],
startTime: new Date('2010-12-05T14:18:30.045Z'), // new Date(2010, 11, 5, 14, 18, 30, 45),
startTime: new Date('2010-12-05 14:18:30.045'),
categoryName: 'multiple.levels.of.tests',
level: {
toString: function () {
@ -216,11 +216,6 @@ test('log4js layouts', (batch) => {
const layout = require('../../lib/layouts').patternLayout;
// override getTimezoneOffset
event.startTime.getTimezoneOffset = function () {
return 0;
};
t.test('should default to "time logLevel loggerName - message"', (assert) => {
testPattern(
assert, layout, event, tokens, null,
@ -280,7 +275,6 @@ test('log4js layouts', (batch) => {
});
t.test('%d should allow for format specification', (assert) => {
testPattern(assert, layout, event, tokens, '%d{ISO8601_WITH_TZ_OFFSET}', '2010-12-05T14:18:30.045-0000');
testPattern(assert, layout, event, tokens, '%d{ISO8601}', '2010-12-05T14:18:30.045');
testPattern(assert, layout, event, tokens, '%d{ABSOLUTE}', '14:18:30.045');
testPattern(assert, layout, event, tokens, '%d{DATE}', '05 12 2010 14:18:30.045');

View File

@ -104,6 +104,7 @@ test('log4js', (batch) => {
const log4js = sandbox.require(
'../../lib/log4js',
{
ignoreMissing: true,
requires: {
fs: {
statSync: function () {
@ -125,7 +126,7 @@ test('log4js', (batch) => {
return ['file'];
}
},
'./appenders/file': {
'./file': {
configure: function (configuration) {
appenderConfig = configuration;
return function () {
@ -145,6 +146,7 @@ test('log4js', (batch) => {
batch.test('with configure not called', (t) => {
const fakeStdoutAppender = {
configure: function () {
this.required = true;
return function (evt) {
fakeStdoutAppender.evt = evt;
};
@ -162,6 +164,7 @@ test('log4js', (batch) => {
const logger = log4js.getLogger('some-logger');
logger.debug('This is a test');
t.ok(fakeStdoutAppender.required, 'stdout should be required');
t.notOk(fakeStdoutAppender.evt, 'should not log anything');
t.end();
});