From c00bb1bc29cec918aedc08bd5b8d4e62e9fa8c3b Mon Sep 17 00:00:00 2001 From: Brandon Rodriguez <brodriguez8774@gmail.com> Date: Thu, 17 Dec 2020 23:03:21 -0500 Subject: [PATCH] Add additional logging levels for project --- src/logging.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/src/logging.js b/src/logging.js index 98982a9..b96bae1 100644 --- a/src/logging.js +++ b/src/logging.js @@ -67,6 +67,9 @@ class LoggingClass { #warning_file_logger; #error_file_logger; + #sql_q_file_logger; // SQL Query level. + #sql_r_file_logger; // SQL Result level. + /** * Class Constructor. */ @@ -125,6 +128,20 @@ class LoggingClass { ignoreErrors: true, colorMode: false }); + + // Initialize SQL Statement file logging stream. + this.#sql_q_file_logger = new Console({ + stdout: fs.createWriteStream(logging_dir.concat('sql_q.log'), {'flags': 'a'}), + ignoreErrors: true, + colorMode: false + }); + + // Initialize SQL Result file logging stream. + this.#sql_r_file_logger = new Console({ + stdout: fs.createWriteStream(logging_dir.concat('sql_r.log'), {'flags': 'a'}), + ignoreErrors: true, + colorMode: false + }); } /** @@ -238,6 +255,42 @@ class LoggingClass { this.#logToFile(log_string, 40); } + /** + * SQL Query logging method. + */ + sql_q(firstArgument, ...otherArguments) { + // Get calling file name and line number. + let [relativeFileName, lineNum] = this.getCallerInfo(); + + // // Generate and print Console text. + let prefix = ` ${chalk.magenta('[SQL Q]')} [${relativeFileName} ${lineNum}] `; + let console_string = prefix.concat(firstArgument, ...otherArguments); + console.log(console_string); + + // Generate and print Log File text. + prefix = `${getCurrentDate()} [SQL Q] [${relativeFileName} ${lineNum}] `; + let log_string = prefix.concat(firstArgument, ...otherArguments); + this.#logToFile(log_string, 'sql q'); + } + + /** + * SQL Result logging method. + */ + sql_r(firstArgument, ...otherArguments) { + // Get calling file name and line number. + let [relativeFileName, lineNum] = this.getCallerInfo(); + + // // Generate and print Console text. + let prefix = ` ${chalk.magenta('[SQL R]')} [${relativeFileName} ${lineNum}] `; + let console_string = prefix.concat(firstArgument, ...otherArguments); + console.log(console_string); + + // Generate and print Log File text. + prefix = `${getCurrentDate()} [SQL R] [${relativeFileName} ${lineNum}] `; + let log_string = prefix.concat(firstArgument, ...otherArguments); + this.#logToFile(log_string, 'sql r'); + } + /** * Writes provided string to log files. */ @@ -273,6 +326,16 @@ class LoggingClass { // Debug level logging or higher. this.#debug_file_logger.log(log_string); } + + if (log_level == 'sql q') { + // SQL Query level logging. + this.#sql_q_file_logger.log(log_string); + } + + if (log_level == 'sql r') { + // SQL Result level logging. + this.#sql_r_file_logger.log(log_string); + } } } @@ -288,6 +351,11 @@ function testLogLevels(logger) { logger.warning('WARNING level test.'); logger.error('ERROR level test.'); logger.log('Log/default level test.'); + + logger.log('.'); + + logger.sql_q('SQL Q level test.'); + logger.sql_r('SQL R level test.'); } -- GitLab