Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 09271a8

Browse files
committed
chore(travis): ignore 404 warnings, debug log into file
This is a terrible hack/workaround, however I don't think there is any better way to achieve this with log4js.
1 parent 5a8d9ac commit 09271a8

File tree

1 file changed

+40
-2
lines changed

1 file changed

+40
-2
lines changed

karma-shared.conf.js

+40-2
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,52 @@ module.exports = function(config, specificOptions) {
111111

112112

113113
if (process.env.TRAVIS) {
114+
config.logLevel = config.LOG_DEBUG;
114115
config.transports = ['websocket', 'xhr-polling'];
115116
config.browserStack.build = 'TRAVIS ' + process.env.TRAVIS_BUILD_ID;
116117

117118
// Debug logging into a file, that we print out at the end of the build.
118119
config.loggers.push({
119120
type: 'file',
120-
filename: process.env.LOGS_DIR + '/' + (specificOptions.logFile || 'karma.log'),
121-
level: config.LOG_DEBUG
121+
filename: process.env.LOGS_DIR + '/' + (specificOptions.logFile || 'karma.log')
122122
});
123123
}
124+
125+
126+
// Terrible hack to workaround inflexibility of log4js:
127+
// - ignore web-server's 404 warnings,
128+
// - ignore DEBUG logs (on Travis), we log them into a file instead.
129+
var IGNORED_404 = [
130+
'/favicon.ico',
131+
'/%7B%7BtestUrl%7D%7D',
132+
'/someSanitizedUrl',
133+
'/{{testUrl}}'
134+
];
135+
var log4js = require('./node_modules/karma/node_modules/log4js');
136+
var layouts = require('./node_modules/karma/node_modules/log4js/lib/layouts');
137+
var originalConfigure = log4js.configure;
138+
log4js.configure = function(log4jsConfig) {
139+
var consoleAppender = log4jsConfig.appenders.shift();
140+
var originalResult = originalConfigure.call(log4js, log4jsConfig);
141+
var layout = layouts.layout(consoleAppender.layout.type, consoleAppender.layout);
142+
143+
144+
145+
log4js.addAppender(function(log) {
146+
// ignore web-server's 404s
147+
if (log.categoryName === 'web-server' && log.level.levelStr === config.LOG_WARN &&
148+
IGNORED_404.indexOf(log.data[0]) !== -1) {
149+
return;
150+
}
151+
152+
// on Travis, ignore DEBUG statements
153+
if (process.env.TRAVIS && log.level.levelStr === config.LOG_DEBUG) {
154+
return;
155+
}
156+
157+
console.log(layout(log));
158+
});
159+
160+
return originalResult;
161+
};
124162
};

0 commit comments

Comments
 (0)