From 90197e919b0ee4ed0c46160d6277c42d61b120ce Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Mon, 28 Nov 2016 13:06:27 -0800 Subject: [PATCH] Packager: Print Debug Fields on Separate Lines Summary: When printing fields in the packager server debug output, this revision breaks the fields up onto multiple lines. As it currently exists, the fields are printed immediately after the log entry label which can seem unnecessarily repetitive and unintuitive. Reviewed By: davidaurelio Differential Revision: D4235038 fbshipit-source-id: 2d59afa70c74f19afab221dfa58f437913c6dc2c --- react-packager/src/Logger/index.js | 46 +++++++++++++++--------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/react-packager/src/Logger/index.js b/react-packager/src/Logger/index.js index 159ff2e6..11bf72f4 100644 --- a/react-packager/src/Logger/index.js +++ b/react-packager/src/Logger/index.js @@ -89,40 +89,40 @@ function print( if (!PRINT_LOG_ENTRIES) { return logEntry; } + const { + log_entry_label: logEntryLabel, + action_phase: actionPhase, + duration_ms: duration, + } = logEntry; - const {log_entry_label, action_phase, duration_ms} = logEntry; const timeStamp = new Date().toLocaleString(); - const logEntryDataList = []; - let logEntryString, logEntryDataString; + let logEntryString; - for (let i = 0, len = printFields.length; i < len; i++) { - const field = printFields[i]; - const value = logEntry[field]; - if (value === undefined) { - continue; - } - logEntryDataList.push(`${field}: ${value.toString()}`); - } - - logEntryDataString = logEntryDataList.join(' | '); - - if (logEntryDataString) { - logEntryDataString = ` ${logEntryDataString}`; - } - - switch (action_phase) { + switch (actionPhase) { case 'start': - logEntryString = chalk.dim(`[${timeStamp}] ${log_entry_label}${logEntryDataString}`); + logEntryString = chalk.dim(`[${timeStamp}] ${logEntryLabel}`); break; case 'end': - logEntryString = chalk.dim(`[${timeStamp}] ${log_entry_label}${logEntryDataString}`) + - chalk.cyan(` (${+duration_ms}ms)`); + logEntryString = chalk.dim(`[${timeStamp}] ${logEntryLabel}`) + + chalk.cyan(` (${+duration}ms)`); break; default: - logEntryString = chalk.dim(`[${timeStamp}] ${log_entry_label}${logEntryDataString}`); + logEntryString = chalk.dim(`[${timeStamp}] ${logEntryLabel}`); break; } + if (printFields.length) { + const indent = ' '.repeat(timeStamp.length + 11); + + for (const field of printFields) { + const value = logEntry[field]; + if (value === undefined) { + continue; + } + logEntryString += chalk.dim(`\n${indent}${field}: ${value.toString()}`); + } + } + // eslint-disable-next-line no-console-disallow console.log(logEntryString);