diff --git a/config/config.js b/config/config.js index c5c08de7..fc042273 100644 --- a/config/config.js +++ b/config/config.js @@ -54,7 +54,7 @@ module.exports = function (options) { } } }, - + log: options && options.log ? options.log : undefined, 'recaptcha_secret_key': process.env.RECAPTCHA_SECRET_KEY || '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe', transport: { type: 'web', diff --git a/package.json b/package.json index df236464..766fa7c4 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "covrep": "bash test/covrep.sh", "lint": "./node_modules/.bin/semistandard *.js config/config.js", "start": "node service.js", - "dev": "nodemon service.js" + "dev": "nodemon service.js | bunyan" }, "pre-commit": [ "test" diff --git a/service.js b/service.js index 9136f3c5..050b1373 100644 --- a/service.js +++ b/service.js @@ -4,20 +4,20 @@ require('events').EventEmitter.prototype._maxListeners = 100; if (process.env.NEW_RELIC_ENABLED === 'true') require('newrelic'); -var config = require('./config/config.js')(); +const service = 'cp-users-service'; +const { logger, log } = require('cp-logs-lib')({ + name: service, + level: process.env.NODE_ENV === 'production' ? 'warn' : 'info' +}); +const config = require('./config/config.js')({ log }); var seneca = require('seneca')(config); var _ = require('lodash'); var store = require('seneca-postgresql-store'); var storeQuery = require('seneca-store-query'); -var service = 'cp-users-service'; -var log = require('cp-logs-lib')({name: service, level: 'warn'}); -config.log = log.log; var util = require('util'); var dgram = require('dgram'); -if (process.env.NODE_ENV !== 'production') { - seneca.log.info('using config', JSON.stringify(config, null, 4)); -} +logger.info(config, 'config'); seneca.options(config); seneca.decorate('customValidatorLogFormatter', require('./lib/custom-validator-log-formatter')); @@ -31,45 +31,39 @@ if (process.env.MAILTRAP_ENABLED === 'true') { function shutdown (err) { if (err !== undefined) { - var error = { - date: new Date().toString(), - msg: err.stack !== undefined + logger.error( + err, + err.stack !== undefined ? 'FATAL: UncaughtException, please report: ' + util.inspect(err.stack) - : 'FATAL: UncaughtException, no stack trace', - err: util.inspect(err) - }; - console.error(JSON.stringify(error)); + : 'FATAL: UncaughtException, no stack trace'); process.exit(1); } process.exit(0); } require('./migrate-psql-db.js')(function (err) { - if (err) { - console.error(err); - process.exit(-1); - } - console.log('Migrations ok'); + if (err) shutdown(err); + logger.info('Migrations ok'); seneca.use(require('./email-notifications.js')); seneca.use(require('./agreements.js')); - seneca.use(require('./profiles.js'), - { postgresql: config['postgresql-store'], - logger: log.logger - }); + seneca.use(require('./profiles.js'), { + postgresql: config['postgresql-store'], + logger + }); seneca.use(require('./oauth2.js'), {clients: config.oauth2.clients}); seneca.use('user'); seneca.use('auth'); - seneca.use(require('./users.js'), - { 'email-notifications': config['email-notifications'], - 'postgresql': config['postgresql-store'], - 'users': config['users'], - 'logger': log.logger - }); - seneca.use(require('./user-profile.js'), - { postgresql: config['postgresql-store'], - logger: log.logger - }); + seneca.use(require('./users.js'), { + 'email-notifications': config['email-notifications'], + postgresql: config['postgresql-store'], + users: config['users'], + logger + }); + seneca.use(require('./user-profile.js'), { + postgresql: config['postgresql-store'], + logger + }); seneca.use(require('./nodebb-api.js'), config.nodebb); seneca.use(require('cp-permissions-plugin'), { config: __dirname + '/config/permissions'