diff --git a/server/server.js b/server/server.js index c3aec39..5188fd1 100755 --- a/server/server.js +++ b/server/server.js @@ -35,6 +35,7 @@ const RedisStore = require('connect-redis')(expressSession); const sharedSession = require('express-socket.io-session'); const interactiveServer = require('./lib/interactiveServer'); const promExporter = require('./lib/promExporter'); +const { v4: uuidv4 } = require('uuid'); /* eslint-disable no-console */ console.log('- process.env.DEBUG:', process.env.DEBUG); @@ -157,6 +158,24 @@ async function run() // Run WebSocketServer. await runWebSocketServer(); + function errorHandler(err, req, res, next) + { + const trackingId = uuidv4(); + + res.status(500).send( + `
If you report this error, please also report this + tracking ID which makes it possible to locate your session + in the logs which are available to the system administrator: + ${trackingId}
` + ); + logger.error( + 'Express error handler dump with tracking ID: %s, error dump: %o', + trackingId, err); + } + + app.use(errorHandler); + // Log rooms status every 30 seconds. setInterval(() => {