diff --git a/app/config/parser.js b/app/config/parser.js
index c35181ebb70d3338a4b4082c563f06661c1e2148..63b08a15658f8a6ec2de5bc247c5dea38f5507bf 100644
--- a/app/config/parser.js
+++ b/app/config/parser.js
@@ -1,15 +1,6 @@
-const winston = require('winston');
+const logger = require('winston');
 const program = require('commander');
 
-// Add the logger
-const logger = new (winston.Logger)({
-  transports: [
-    // colorize the output to the console
-    new (winston.transports.Console)({ colorize: true }),
-  ],
-});
-logger.level = process.env.LOG_LEVEL || 'info';
-
 module.exports = {
   getGlobalConfig,
   getCascadedConfig,
@@ -91,8 +82,9 @@ function getGlobalConfig() {
     cliConfig.token = program.token;
   }
 
-  // Set global config
+  // Get global config
   config = Object.assign({}, defaultConfig, customConfig, envConfig, cliConfig);
+
   // Set log level
   logger.level = config.logLevel;
 
@@ -132,9 +124,6 @@ function getGlobalConfig() {
   // Print config
   logger.verbose(`config=${JSON.stringify(config)}`);
 
-  // Add logger to config
-  config.logger = logger;
-
   return config;
 }
 
diff --git a/app/helpers/github.js b/app/helpers/github.js
index 5918de4e7c305cace4d8062acc9c2a18df6552e5..b88c510aa1fb0bea81a4d2b702cf13582d95f35d 100644
--- a/app/helpers/github.js
+++ b/app/helpers/github.js
@@ -1,7 +1,7 @@
+const logger = require('winston');
 const ghGot = require('gh-got');
 
 const config = {};
-let logger = null;
 
 module.exports = {
   init,
@@ -21,9 +21,8 @@ module.exports = {
   updatePr,
 };
 
-function init(token, l) {
+function init(token) {
   config.token = token;
-  logger = l;
 }
 
 // Initialize GitHub by getting base branch and SHA
diff --git a/app/helpers/npm.js b/app/helpers/npm.js
index 9798c211a70a83a225991d57274bf90a01ee2cae..14a6ed26b59f0cf500a4119819e7e476e34d398f 100644
--- a/app/helpers/npm.js
+++ b/app/helpers/npm.js
@@ -1,11 +1,9 @@
+const logger = require('winston');
 const got = require('got');
 const semver = require('semver');
 const stable = require('semver-stable');
 
-let logger = null;
-
 module.exports = {
-  setLogger,
   extractDependencies,
   findUpgrades,
   getUpgrades,
@@ -13,10 +11,6 @@ module.exports = {
   isValidVersion,
 };
 
-function setLogger(l) {
-  logger = l;
-}
-
 // Returns an array of current dependencies
 function extractDependencies(packageJson, sections) {
   // loop through dependency types
diff --git a/app/helpers/package-json.js b/app/helpers/package-json.js
index 680fb10d8f1784b0a448291730b41043d66b554e..246e2a36ebfe29f62258a8387b985536672f941f 100644
--- a/app/helpers/package-json.js
+++ b/app/helpers/package-json.js
@@ -1,16 +1,11 @@
+const logger = require('winston');
 const _ = require('lodash');
 
-let logger = null;
 
 module.exports = {
-  setLogger,
   setNewValue,
 };
 
-function setLogger(l) {
-  logger = l;
-}
-
 function setNewValue(currentFileContent, depType, depName, newVersion) {
   logger.debug(`setNewValue: ${depType}.${depName} = ${newVersion}`);
   const parsedContents = JSON.parse(currentFileContent);
diff --git a/app/index.js b/app/index.js
index 693ec73ab653d7ee88772eeb0f29004988e52038..a3b31731a03422d1b3c5392457eed86b02bcc578 100644
--- a/app/index.js
+++ b/app/index.js
@@ -1,5 +1,7 @@
 #!/usr/bin/env node
 
+const logger = require('./logger');
+
 // Initialize config
 const configParser = require('./config/parser');
 // Require main source
@@ -19,8 +21,8 @@ config.repositories.forEach((repo) => {
   });
 });
 p.then(() => { // eslint-disable-line promise/always-return
-  config.logger.info('Renovate finished');
+  logger.info('Renovate finished');
 })
 .catch((error) => {
-  config.logger.error(`Unexpected error: ${error}`);
+  logger.error(`Unexpected error: ${error}`);
 });
diff --git a/app/logger.js b/app/logger.js
new file mode 100644
index 0000000000000000000000000000000000000000..5097e1a41d6fa988619a869db818596cf75b4929
--- /dev/null
+++ b/app/logger.js
@@ -0,0 +1,13 @@
+const logger = require('winston');
+
+// Set log level from environment. It may be overriden later by configuration
+logger.level = process.env.LOG_LEVEL || 'info';
+
+// Colorize console logs
+logger.configure({
+  transports: [
+    new (logger.transports.Console)({ colorize: true }),
+  ],
+});
+
+module.exports = logger;
diff --git a/app/renovate.js b/app/renovate.js
index d59eec0ca20459926ae74e52f20fda21ec77fccc..8dc6e3d9dd834d8e7bcbf332a19e4e989b97309a 100644
--- a/app/renovate.js
+++ b/app/renovate.js
@@ -1,23 +1,20 @@
+const logger = require('winston');
 const changelog = require('changelog');
 const github = require('./helpers/github');
 const npm = require('./helpers/npm');
 const packageJson = require('./helpers/package-json');
 
 let config = null;
-let logger = null;
 
 module.exports = renovate;
 
 // This function manages the queue per-package file
 function renovate(repoName, packageFile, setConfig) {
   // Initialize globals
-  logger = setConfig.logger;
   config = Object.assign({}, setConfig);
 
   // Initialize helpers
-  github.init(config.token, logger);
-  npm.setLogger(logger);
-  packageJson.setLogger(logger);
+  github.init(config.token);
   changelog.setGitHubToken(config.token);
 
   logger.info(`Processing ${repoName} ${packageFile}`);
diff --git a/test/helpers/npm.js b/test/helpers/npm.js
index 3d2f7b63e28e89ecc984a64a344aa6c3db58f32d..3d9274b49d45a8488019ca61c29d65f5f8b5fd04 100644
--- a/test/helpers/npm.js
+++ b/test/helpers/npm.js
@@ -7,8 +7,6 @@ const defaultTypes = ['dependencies', 'devDependencies'];
 
 chai.should();
 
-npm.setLogger(winston);
-
 const input01Content = fs.readFileSync('./test/_fixtures/package.json/inputs/01.json', 'utf8');
 const input02Content = fs.readFileSync('./test/_fixtures/package.json/inputs/02.json', 'utf8');
 
diff --git a/test/helpers/package-json.js b/test/helpers/package-json.js
index 0a27c47178b7eae6df9f18c1a5349ab7ca8b2fe1..689c041d7e84c62890a17074a697311c639ffd80 100644
--- a/test/helpers/package-json.js
+++ b/test/helpers/package-json.js
@@ -1,9 +1,6 @@
 const expect = require('chai').expect;
 const fs = require('fs');
 const packageJson = require('../../app/helpers/package-json');
-const winston = require('winston');
-
-packageJson.setLogger(winston);
 
 const inputContent = fs.readFileSync('./test/_fixtures/package.json/inputs/01.json', 'utf8');