From 454f837184c9009cba4935e5d6391887275f56db Mon Sep 17 00:00:00 2001 From: Daryl Ronningen Date: Thu, 17 Jun 2021 02:24:02 -0700 Subject: [PATCH] feat(logging): added support for multiple lines --- src/utils/logger.ts | 84 +++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 30 deletions(-) diff --git a/src/utils/logger.ts b/src/utils/logger.ts index 04b2cfa..59087e3 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -69,49 +69,73 @@ switch (loglevel.toLowerCase()) { } export function verbose(message: string, scope?: ELoggingScope): void { - if(verboseLevel) - if(scope) - console.log(logger`{grey (${date})} {magenta.bold ${scope}} {white.bold [VERBOSE]}: {white ${message}}`); - else - console.log(logger`{grey (${date})} {white.bold [VERBOSE]}: {white ${message}}`); + const splitMultiline = message.split('\n'); + + splitMultiline.forEach((val) => { + if (verboseLevel) + if (scope) + console.log(logger`{grey (${date})} {magenta.bold ${scope}} {white.bold [VERBOSE]}: {white ${val}}`); + else + console.log(logger`{grey (${date})} {white.bold [VERBOSE]}: {white ${val}}`); + }); } export function debug(message: string, scope?: ELoggingScope): void { - if(debugLevel) - if(scope) - console.log(logger`{grey (${date})} {magenta.bold ${scope}} {blue.bold [DEBUG]}: {blue ${message}}`); - else - console.log(logger`{grey (${date})} {blue.bold [DEBUG]}: {blue ${message}}`); + const splitMultiline = message.split('\n'); + + splitMultiline.forEach((val) => { + if (debugLevel) + if (scope) + console.log(logger`{grey (${date})} {magenta.bold ${scope}} {blue.bold [DEBUG]}: {blue ${val}}`); + else + console.log(logger`{grey (${date})} {blue.bold [DEBUG]}: {blue ${val}}`); + }); } export function info(message: string, scope?: ELoggingScope): void { - if (infoLevel) - if(scope) - console.log(logger`{grey (${date})} {magenta.bold ${scope}} {green.bold [INFO]}: {green ${message}}`); - else - console.log(logger`{grey (${date})} {green.bold [INFO]}: {green ${message}}`); + const splitMultiline = message.split('\n'); + + splitMultiline.forEach((val) => { + if (infoLevel) + if(scope) + console.log(logger`{grey (${date})} {magenta.bold ${scope}} {green.bold [INFO]}: {green ${val}}`); + else + console.log(logger`{grey (${date})} {green.bold [INFO]}: {green ${val}}`); + }); } export function warn(message: string, scope?: ELoggingScope): void { - if(warnLevel) - if(scope) - console.log(logger`{grey (${date})} {magenta.bold ${scope}} {yellow.bold [WARN]}: {yellow ${message}}`); - else - console.log(logger`{grey (${date})} {yellow.bold [WARN]}: {yellow ${message}}`); + const splitMultiline = message.split('\n'); + + splitMultiline.forEach((val) => { + if (warnLevel) + if (scope) + console.log(logger`{grey (${date})} {magenta.bold ${scope}} {yellow.bold [WARN]}: {yellow ${val}}`); + else + console.log(logger`{grey (${date})} {yellow.bold [WARN]}: {yellow ${val}}`); + }); } export function error(message: string, scope?: ELoggingScope): void { - if(errorLevel) - if(scope) - console.log(logger`{grey (${date})} {magenta.bold ${scope}} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${message}}`); - else - console.log(logger`{grey (${date})} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${message}}`); + const splitMultiline = message.split('\n'); + + splitMultiline.forEach((val) => { + if (errorLevel) + if (scope) + console.log(logger`{grey (${date})} {magenta.bold ${scope}} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${val}}`); + else + console.log(logger`{grey (${date})} {bold.underline.rgb(255, 165, 0) [ERROR]}: {underline.rgb(255, 165, 0) ${val}}`); + }); } export function fatal(message: string, scope?: ELoggingScope): void { - if(fatalLevel) - if(scope) - console.log(logger`{grey (${date})} {magenta.bold ${scope}} {red.bold.underline [FATAL]}: {red.underline ${message}}`); - else - console.log(logger`{grey (${date})} {red.bold.underline [FATAL]}: {red.underline ${message}}`); + const splitMultiline = message.split('\n'); + + splitMultiline.forEach((val) => { + if (fatalLevel) + if (scope) + console.log(logger`{grey (${date})} {magenta.bold ${scope}} {red.bold.underline [FATAL]}: {red.underline ${val}}`); + else + console.log(logger`{grey (${date})} {red.bold.underline [FATAL]}: {red.underline ${val}}`); + }); }