feat(server): Use debug for prettier logs

This commit is contained in:
Berkeley Martinez
2018-01-06 11:24:08 -08:00
committed by mrugesh mohapatra
parent 020a25bb4f
commit 52529a99b1
3 changed files with 31 additions and 15 deletions

View File

@ -1,15 +1,19 @@
const createDebugger = require('debug');
const log = createDebugger('fcc:boot:explorer');
module.exports = function mountLoopBackExplorer(app) { module.exports = function mountLoopBackExplorer(app) {
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
return; return;
} }
var explorer; let explorer;
try { try {
explorer = require('loopback-component-explorer'); explorer = require('loopback-component-explorer');
} catch (err) { } catch (err) {
// Print the message only when the app was started via `app.listen()`. // 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. // Do not print any message when the project is used as a component.
app.once('started', function() { app.once('started', function() {
console.log( log(
'Run `npm install loopback-component-explorer` to enable ' + 'Run `npm install loopback-component-explorer` to enable ' +
'the LoopBack explorer' 'the LoopBack explorer'
); );
@ -17,13 +21,13 @@ module.exports = function mountLoopBackExplorer(app) {
return; return;
} }
var restApiRoot = app.get('restApiRoot'); const restApiRoot = app.get('restApiRoot');
var mountPath = '/explorer'; const mountPath = '/explorer';
explorer(app, { basePath: restApiRoot, mountPath }); explorer(app, { basePath: restApiRoot, mountPath });
app.once('started', function() { 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);
}); });
}; };

View File

@ -1,16 +1,22 @@
// this ensures node understands the future // this ensures node understands the future
require('babel-register'); require('babel-register');
const _ = require('lodash'); const _ = require('lodash');
const createDebugger = require('debug');
const log = createDebugger('fcc:server:production-start');
const startTime = Date.now(); const startTime = Date.now();
// force logger to always output
// this may be brittle
log.enabled = true;
// this is where server starts booting up // this is where server starts booting up
const app = require('./server'); const app = require('./server');
let timeoutHandler; let timeoutHandler;
let killTime = 15; let killTime = 15;
const onConnect = _.once(() => { const onConnect = _.once(() => {
console.log('db connected in: %s', Date.now() - startTime); log('db connected in: %s', Date.now() - startTime);
if (timeoutHandler) { if (timeoutHandler) {
clearTimeout(timeoutHandler); clearTimeout(timeoutHandler);
} }

View File

@ -17,6 +17,12 @@ const boot = require('loopback-boot');
const expressState = require('express-state'); const expressState = require('express-state');
const path = require('path'); const path = require('path');
const setupPassport = require('./component-passport'); 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'; Rx.config.longStackSupport = process.env.NODE_DEBUG !== 'production';
const app = loopback(); const app = loopback();
@ -38,30 +44,30 @@ boot(app, {
setupPassport(app); setupPassport(app);
const { db } = app.datasources; const { db } = app.datasources;
db.on('connected', _.once(() => console.log('db connected'))); db.on('connected', _.once(() => log('db connected')));
app.start = _.once(function() { app.start = _.once(function() {
const server = app.listen(app.get('port'), function() { const server = app.listen(app.get('port'), function() {
app.emit('started'); app.emit('started');
console.log( log(
'freeCodeCamp server listening on port %d in %s', 'freeCodeCamp server listening on port %d in %s',
app.get('port'), app.get('port'),
app.get('env') app.get('env')
); );
if (isBeta) { 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', () => { process.on('SIGINT', () => {
console.log('Shutting down server'); log('Shutting down server');
server.close(() => { server.close(() => {
console.log('Server is closed'); log('Server is closed');
}); });
console.log('closing db connection'); log('closing db connection');
db.disconnect() db.disconnect()
.then(() => { .then(() => {
console.log('DB connection closed'); log('DB connection closed');
// exit process // exit process
// this may close kept alive sockets // this may close kept alive sockets
// eslint-disable-next-line no-process-exit // eslint-disable-next-line no-process-exit