diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index 71497058d..1e5125027 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -270,13 +270,13 @@ process.on('exit', (code) => console.log(`Ontime shutdown with code: ${code}`)); process.on('unhandledRejection', async (error) => { generateCrashReport(error); - logger.error(LogOrigin.Server, `Uncaught exception | ${error}`); + logger.crash(LogOrigin.Server, `Uncaught exception | ${error}`); await shutdown(1); }); process.on('uncaughtException', async (error) => { generateCrashReport(error); - logger.error(LogOrigin.Server, `Uncaught exception | ${error}`); + logger.crash(LogOrigin.Server, `Uncaught exception | ${error}`); await shutdown(1); }); diff --git a/apps/server/src/classes/Logger.ts b/apps/server/src/classes/Logger.ts index a42acb38e..689e5bfe7 100644 --- a/apps/server/src/classes/Logger.ts +++ b/apps/server/src/classes/Logger.ts @@ -35,8 +35,8 @@ class Logger { * @param log */ private _push(log: Log) { - if (!isProduction || log.level === LogLevel.Error) { - if (log.level === LogLevel.Error) { + if (!isProduction || log.level === LogLevel.Severe) { + if (log.level === LogLevel.Severe) { consoleRed(`[${log.level}] \t ${log.origin} \t ${log.text}`); } else { // eslint-disable-next-line no-console @@ -98,6 +98,15 @@ class Logger { this.emit(LogLevel.Error, origin, text); } + /** + * Utility to emit logging message of type SEVERE + * @param origin + * @param text + */ + crash(origin: string, text: string) { + this.emit(LogLevel.Severe, origin, text); + } + /** * Shutdown logger */ diff --git a/packages/types/src/definitions/runtime/Logger.type.ts b/packages/types/src/definitions/runtime/Logger.type.ts index f339cfa62..6fa7d3bb7 100644 --- a/packages/types/src/definitions/runtime/Logger.type.ts +++ b/packages/types/src/definitions/runtime/Logger.type.ts @@ -2,6 +2,7 @@ export enum LogLevel { Info = 'INFO', Warn = 'WARN', Error = 'ERROR', + Severe = 'SEVERE', } export type Log = {