Skip to content
This repository was archived by the owner on Dec 14, 2023. It is now read-only.

Commit a551c9f

Browse files
committed
use logger to catch fatal errors rather then console
1 parent c7364a4 commit a551c9f

File tree

3 files changed

+29
-35
lines changed

3 files changed

+29
-35
lines changed

config/config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ module.exports = function (options) {
5454
}
5555
}
5656
},
57-
57+
log: options && options.log ? options.log : undefined,
5858
'recaptcha_secret_key': process.env.RECAPTCHA_SECRET_KEY || '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe',
5959
transport: {
6060
type: 'web',

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"covrep": "bash test/covrep.sh",
1313
"lint": "./node_modules/.bin/semistandard *.js config/config.js",
1414
"start": "node service.js",
15-
"dev": "nodemon service.js"
15+
"dev": "nodemon service.js | bunyan"
1616
},
1717
"pre-commit": [
1818
"test"

service.js

+27-33
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ require('events').EventEmitter.prototype._maxListeners = 100;
44

55
if (process.env.NEW_RELIC_ENABLED === 'true') require('newrelic');
66

7-
var config = require('./config/config.js')();
7+
const service = 'cp-users-service';
8+
const { logger, log } = require('cp-logs-lib')({
9+
name: service,
10+
level: process.env.NODE_ENV === 'production' ? 'warn' : 'info',
11+
});
12+
const config = require('./config/config.js')({ log });
813
var seneca = require('seneca')(config);
914
var _ = require('lodash');
1015
var store = require('seneca-postgresql-store');
1116
var storeQuery = require('seneca-store-query');
12-
var service = 'cp-users-service';
13-
var log = require('cp-logs-lib')({name: service, level: 'warn'});
14-
config.log = log.log;
1517
var util = require('util');
1618
var dgram = require('dgram');
1719

18-
if (process.env.NODE_ENV !== 'production') {
19-
seneca.log.info('using config', JSON.stringify(config, null, 4));
20-
}
20+
logger.info(config, 'config');
2121

2222
seneca.options(config);
2323
seneca.decorate('customValidatorLogFormatter', require('./lib/custom-validator-log-formatter'));
@@ -31,45 +31,39 @@ if (process.env.MAILTRAP_ENABLED === 'true') {
3131

3232
function shutdown (err) {
3333
if (err !== undefined) {
34-
var error = {
35-
date: new Date().toString(),
36-
msg: err.stack !== undefined
34+
logger.error(
35+
err,
36+
err.stack !== undefined
3737
? 'FATAL: UncaughtException, please report: ' + util.inspect(err.stack)
38-
: 'FATAL: UncaughtException, no stack trace',
39-
err: util.inspect(err)
40-
};
41-
console.error(JSON.stringify(error));
38+
: 'FATAL: UncaughtException, no stack trace');
4239
process.exit(1);
4340
}
4441
process.exit(0);
4542
}
4643

4744
require('./migrate-psql-db.js')(function (err) {
48-
if (err) {
49-
console.error(err);
50-
process.exit(-1);
51-
}
52-
console.log('Migrations ok');
45+
if (err) shutdown(err);
46+
logger.info('Migrations ok');
5347

5448
seneca.use(require('./email-notifications.js'));
5549
seneca.use(require('./agreements.js'));
56-
seneca.use(require('./profiles.js'),
57-
{ postgresql: config['postgresql-store'],
58-
logger: log.logger
59-
});
50+
seneca.use(require('./profiles.js'), {
51+
postgresql: config['postgresql-store'],
52+
logger,
53+
});
6054
seneca.use(require('./oauth2.js'), {clients: config.oauth2.clients});
6155
seneca.use('user');
6256
seneca.use('auth');
63-
seneca.use(require('./users.js'),
64-
{ 'email-notifications': config['email-notifications'],
65-
'postgresql': config['postgresql-store'],
66-
'users': config['users'],
67-
'logger': log.logger
68-
});
69-
seneca.use(require('./user-profile.js'),
70-
{ postgresql: config['postgresql-store'],
71-
logger: log.logger
72-
});
57+
seneca.use(require('./users.js'), {
58+
'email-notifications': config['email-notifications'],
59+
postgresql: config['postgresql-store'],
60+
users: config['users'],
61+
logger,
62+
});
63+
seneca.use(require('./user-profile.js'), {
64+
postgresql: config['postgresql-store'],
65+
logger,
66+
});
7367
seneca.use(require('./nodebb-api.js'), config.nodebb);
7468
seneca.use(require('cp-permissions-plugin'), {
7569
config: __dirname + '/config/permissions'

0 commit comments

Comments
 (0)