From a118b91b79a3fb2fd5f60234e13a9cb86f81a051 Mon Sep 17 00:00:00 2001 From: vjrj Date: Thu, 3 May 2018 01:15:33 +0200 Subject: [PATCH] Added better server log errors --- imports/startup/server/catchExceptions.js | 21 +++++++++++++++++++++ imports/startup/server/index.js | 1 + imports/startup/server/ravenLogger.js | 1 + imports/startup/server/segfaults.js | 3 +++ 4 files changed, 26 insertions(+) create mode 100644 imports/startup/server/catchExceptions.js diff --git a/imports/startup/server/catchExceptions.js b/imports/startup/server/catchExceptions.js new file mode 100644 index 0000000..af4d03b --- /dev/null +++ b/imports/startup/server/catchExceptions.js @@ -0,0 +1,21 @@ +/* eslint-disable import/no-absolute-path */ + +import { Meteor } from 'meteor/meteor'; +import ravenLogger from '/imports/startup/server/ravenLogger'; + +Meteor.startup(() => { + const bound = Meteor.bindEnvironment((callback) => { callback(); }); + process.on('uncaughtException', (err) => { + bound(() => { + // console.error('Server crashed!', err); + console.error(err); + // console.error(err.stack); + + // https://github.com/flowkey/meteor-raven + ravenLogger.log(err); + + // https://github.com/nodejs/node-v0.x-archive/blob/master/doc/api/process.markdown#exit-codes + process.exit(7); + }); + }); +}); diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js index 018ccdd..736deff 100644 --- a/imports/startup/server/index.js +++ b/imports/startup/server/index.js @@ -1,4 +1,5 @@ import './ravenLogger'; +import './catchExceptions'; import './i18n'; import './accounts'; import './api'; diff --git a/imports/startup/server/ravenLogger.js b/imports/startup/server/ravenLogger.js index ac242f9..868132a 100644 --- a/imports/startup/server/ravenLogger.js +++ b/imports/startup/server/ravenLogger.js @@ -4,6 +4,7 @@ import { Meteor } from 'meteor/meteor'; const ravenOptions = {}; const ravenLogger = new RavenLogger({ + publicDSN: Meteor.settings.public.sentryPublicDSN, privateDSN: Meteor.settings.sentryPrivateDSN, shouldCatchConsoleError: true, // default true trackUser: true // default false diff --git a/imports/startup/server/segfaults.js b/imports/startup/server/segfaults.js index bb1b798..b976f0b 100644 --- a/imports/startup/server/segfaults.js +++ b/imports/startup/server/segfaults.js @@ -20,3 +20,6 @@ SegfaultHandler.registerHandler(`/var/tmp/tcef-stacktrace-${dateFileFormat}.log` // Only uncomment for segv tests // SegfaultHandler.causeSegfault(); + +// Or this for normal error (should go to raven in configured) +// throw new Error('This is just a test of error in server');