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

Commit 3616157

Browse files
committed
use logger to catch fatal errors rather then console
1 parent 8b1475d commit 3616157

File tree

4 files changed

+41
-42
lines changed

4 files changed

+41
-42
lines changed

config/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ module.exports = function (options) {
5151
}
5252
}
5353
},
54-
54+
log: options && options.log ? options.log : undefined,
5555
'recaptcha_secret_key': process.env.RECAPTCHA_SECRET_KEY || '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe',
5656
transport: {
5757
type: 'web',

package.json

Lines changed: 1 addition & 1 deletion
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

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,21 @@ require('events').EventEmitter.prototype._maxListeners = 100;
44

55
const newrelic = process.env.NEW_RELIC_ENABLED === 'true' ? require('newrelic') : undefined;
66
const senecaNR = require('seneca-newrelic');
7-
var config = require('./config/config.js')();
7+
8+
const service = 'cp-users-service';
9+
const { logger, log } = require('cp-logs-lib')({
10+
name: service,
11+
level: process.env.NODE_ENV === 'production' ? 'warn' : 'info'
12+
});
13+
const config = require('./config/config.js')({ log });
814
var seneca = require('seneca')(config);
915
var _ = require('lodash');
1016
var store = require('seneca-postgresql-store');
1117
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;
1518
var util = require('util');
1619
var dgram = require('dgram');
1720

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

2223
seneca.options(config);
2324
seneca.decorate('customValidatorLogFormatter', require('./lib/custom-validator-log-formatter'));
@@ -31,45 +32,39 @@ if (process.env.MAILDEV_ENABLED === 'true') {
3132

3233
function shutdown (err) {
3334
if (err !== undefined) {
34-
var error = {
35-
date: new Date().toString(),
36-
msg: err.stack !== undefined
35+
logger.error(
36+
err,
37+
err.stack !== undefined
3738
? '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));
39+
: 'FATAL: UncaughtException, no stack trace');
4240
process.exit(1);
4341
}
4442
process.exit(0);
4543
}
4644

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

5449
seneca.use(require('./email-notifications.js'));
5550
seneca.use(require('./lib/agreements'));
56-
seneca.use(require('./profiles.js'),
57-
{ postgresql: config['postgresql-store'],
58-
logger: log.logger
59-
});
60-
seneca.use(require('./oauth2.js'), {clients: config.oauth2.clients});
51+
seneca.use(require('./profiles.js'), {
52+
postgresql: config['postgresql-store'],
53+
logger
54+
});
55+
seneca.use(require('./oauth2.js'), { clients: config.oauth2.clients });
6156
seneca.use('user');
6257
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-
});
58+
seneca.use(require('./users.js'), {
59+
'email-notifications': config['email-notifications'],
60+
postgresql: config['postgresql-store'],
61+
users: config['users'],
62+
logger
63+
});
64+
seneca.use(require('./user-profile.js'), {
65+
postgresql: config['postgresql-store'],
66+
logger
67+
});
7368
seneca.use(require('./nodebb-api.js'), config.nodebb);
7469
seneca.use(require('cp-permissions-plugin'), {
7570
config: __dirname + '/config/permissions'
@@ -106,7 +101,11 @@ require('./migrate-psql-db.js')(function (err) {
106101
seneca.wrap('role: entity, cmd: ' + cmd, function filterFields (args, cb) {
107102
try {
108103
['limit$', 'skip$'].forEach(function (field) {
109-
if (args.q[field] && args.q[field] !== 'NULL' && !/^[0-9]+$/g.test(args.q[field] + '')) {
104+
if (
105+
args.q[field] &&
106+
args.q[field] !== 'NULL' &&
107+
!/^[0-9]+$/g.test(args.q[field] + '')
108+
) {
110109
throw new Error('Expect limit$, skip$ to be a number');
111110
}
112111
});
@@ -124,7 +123,7 @@ require('./migrate-psql-db.js')(function (err) {
124123
}
125124
if (args.q.fields$) {
126125
args.q.fields$.forEach(function (field, index) {
127-
args.q.fields$[index] = '\"' + escape(field) + '\"';
126+
args.q.fields$[index] = '"' + escape(field) + '"';
128127
});
129128
}
130129
// Loop over each props

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -915,10 +915,10 @@ [email protected], core-util-is@~1.0.0:
915915
async "^2.0.0-rc.5"
916916
lodash "^4.13.1"
917917

918-
cp-translations@^1.0.146:
919-
version "1.0.146"
920-
resolved "https://registry.yarnpkg.com/cp-translations/-/cp-translations-1.0.146.tgz#dee5c55263fb31c7c5c3e4e8fd573f3a05921f8d"
921-
integrity sha512-h2DRtFybsA2tvcnWg8FI5ZmxyBgavMDr9F+Cp0e78VgyJJusJLPvuSSHHtUxwnYKNsrdgCWZKnPwRkwJXXJtsQ==
918+
cp-translations@^1.0.149:
919+
version "1.0.149"
920+
resolved "https://registry.yarnpkg.com/cp-translations/-/cp-translations-1.0.149.tgz#e09845115a80380cf19c49dfd003d8ed75578690"
921+
integrity sha512-AQa/d/MDNAM8y70gWbE6a65R9ZUYP11WWOF056Eq8Ttngdzg6j1WsmkV4VuZQB5NSIYrZIuM2UoCWIOfC20kmw==
922922

923923
cross-spawn-async@^2.0.0, cross-spawn-async@^2.1.8:
924924
version "2.2.5"

0 commit comments

Comments
 (0)