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) {
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);
});
};

View File

@ -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);
}

View File

@ -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