diff options
| author | Vojta Jina | 2013-12-02 13:51:09 -0800 | 
|---|---|---|
| committer | Vojta Jina | 2013-12-02 22:51:15 -0800 | 
| commit | 09271a8ab945df19ec3aacf43f60c458fafd82fd (patch) | |
| tree | 1e4f04d580b64a414ac794bea0b672c0d5c07ba0 | |
| parent | 5a8d9acacbb8a2b9175da196cbaf8ff93bac28c8 (diff) | |
| download | angular.js-09271a8ab945df19ec3aacf43f60c458fafd82fd.tar.bz2 | |
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.
| -rw-r--r-- | karma-shared.conf.js | 42 | 
1 files changed, 40 insertions, 2 deletions
diff --git a/karma-shared.conf.js b/karma-shared.conf.js index 3659e582..ac8e4f91 100644 --- a/karma-shared.conf.js +++ b/karma-shared.conf.js @@ -111,14 +111,52 @@ module.exports = function(config, specificOptions) {    if (process.env.TRAVIS) { +    config.logLevel = config.LOG_DEBUG;      config.transports = ['websocket', 'xhr-polling'];      config.browserStack.build = 'TRAVIS ' + process.env.TRAVIS_BUILD_ID;      // Debug logging into a file, that we print out at the end of the build.      config.loggers.push({        type: 'file', -      filename: process.env.LOGS_DIR + '/' + (specificOptions.logFile || 'karma.log'), -      level: config.LOG_DEBUG +      filename: process.env.LOGS_DIR + '/' + (specificOptions.logFile || 'karma.log')      });    } + + +  // Terrible hack to workaround inflexibility of log4js: +  // - ignore web-server's 404 warnings, +  // - ignore DEBUG logs (on Travis), we log them into a file instead. +  var IGNORED_404 = [ +    '/favicon.ico', +    '/%7B%7BtestUrl%7D%7D', +    '/someSanitizedUrl', +    '/{{testUrl}}' +  ]; +  var log4js = require('./node_modules/karma/node_modules/log4js'); +  var layouts = require('./node_modules/karma/node_modules/log4js/lib/layouts'); +  var originalConfigure = log4js.configure; +  log4js.configure = function(log4jsConfig) { +    var consoleAppender = log4jsConfig.appenders.shift(); +    var originalResult = originalConfigure.call(log4js, log4jsConfig); +    var layout = layouts.layout(consoleAppender.layout.type, consoleAppender.layout); + + + +    log4js.addAppender(function(log) { +      // ignore web-server's 404s +      if (log.categoryName === 'web-server' && log.level.levelStr === config.LOG_WARN && +          IGNORED_404.indexOf(log.data[0]) !== -1) { +        return; +      } + +      // on Travis, ignore DEBUG statements +      if (process.env.TRAVIS && log.level.levelStr === config.LOG_DEBUG) { +        return; +      } + +      console.log(layout(log)); +    }); + +    return originalResult; +  };  };  | 
