diff --git a/server/boot/explorer.js b/server/boot/explorer.js index 4480abecc7..d5abb9e8c5 100644 --- a/server/boot/explorer.js +++ b/server/boot/explorer.js @@ -1,15 +1,19 @@ +const createDebugger = require('debug'); + +const log = createDebugger('fcc:boot:explorer'); + module.exports = function mountLoopBackExplorer(app) { if (process.env.NODE_ENV === 'production') { return; } - var explorer; + let explorer; try { explorer = require('loopback-component-explorer'); } catch (err) { // Print the message only when the app was started via `app.listen()`. // Do not print any message when the project is used as a component. app.once('started', function() { - console.log( + log( 'Run `npm install loopback-component-explorer` to enable ' + 'the LoopBack explorer' ); @@ -17,13 +21,13 @@ module.exports = function mountLoopBackExplorer(app) { return; } - var restApiRoot = app.get('restApiRoot'); - var mountPath = '/explorer'; + const restApiRoot = app.get('restApiRoot'); + const mountPath = '/explorer'; explorer(app, { basePath: restApiRoot, mountPath }); app.once('started', function() { - var baseUrl = app.get('url').replace(/\/$/, ''); + const baseUrl = app.get('url').replace(/\/$/, ''); - console.log('Browse your REST API at %s%s', baseUrl, mountPath); + log('Browse your REST API at %s%s', baseUrl, mountPath); }); }; diff --git a/server/production-start.js b/server/production-start.js index 928149189f..172984e019 100644 --- a/server/production-start.js +++ b/server/production-start.js @@ -1,16 +1,22 @@ // this ensures node understands the future require('babel-register'); const _ = require('lodash'); +const createDebugger = require('debug'); +const log = createDebugger('fcc:server:production-start'); const startTime = Date.now(); +// force logger to always output +// this may be brittle +log.enabled = true; // this is where server starts booting up const app = require('./server'); + let timeoutHandler; let killTime = 15; const onConnect = _.once(() => { - console.log('db connected in: %s', Date.now() - startTime); + log('db connected in: %s', Date.now() - startTime); if (timeoutHandler) { clearTimeout(timeoutHandler); } diff --git a/server/server.js b/server/server.js index 9a9a637202..216e680a3c 100755 --- a/server/server.js +++ b/server/server.js @@ -17,6 +17,12 @@ const boot = require('loopback-boot'); const expressState = require('express-state'); const path = require('path'); const setupPassport = require('./component-passport'); +const createDebugger = require('debug'); + +const log = createDebugger('fcc:server'); +// force logger to always output +// this may be brittle +log.enabled = true; Rx.config.longStackSupport = process.env.NODE_DEBUG !== 'production'; const app = loopback(); @@ -38,30 +44,30 @@ boot(app, { setupPassport(app); const { db } = app.datasources; -db.on('connected', _.once(() => console.log('db connected'))); +db.on('connected', _.once(() => log('db connected'))); app.start = _.once(function() { const server = app.listen(app.get('port'), function() { app.emit('started'); - console.log( + log( 'freeCodeCamp server listening on port %d in %s', app.get('port'), app.get('env') ); if (isBeta) { - console.log('freeCodeCamp is in beta mode'); + log('freeCodeCamp is in beta mode'); } - console.log(`connecting to db at ${db.settings.url}`); + log(`connecting to db at ${db.settings.url}`); }); process.on('SIGINT', () => { - console.log('Shutting down server'); + log('Shutting down server'); server.close(() => { - console.log('Server is closed'); + log('Server is closed'); }); - console.log('closing db connection'); + log('closing db connection'); db.disconnect() .then(() => { - console.log('DB connection closed'); + log('DB connection closed'); // exit process // this may close kept alive sockets // eslint-disable-next-line no-process-exit