From 486846229cf6c586cc7aa03411d2873d660a8051 Mon Sep 17 00:00:00 2001 From: Jasper De Moor Date: Fri, 24 Aug 2018 12:15:32 -0700 Subject: [PATCH] Minimal verbose mode (#1834) --- src/Bundler.js | 2 ++ src/Logger.js | 33 ++++++++++++++++++++++++++++++++- src/cli.js | 12 ++++++------ 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/Bundler.js b/src/Bundler.js index 0b89bc1d459..0854d970a31 100644 --- a/src/Bundler.js +++ b/src/Bundler.js @@ -600,6 +600,8 @@ class Bundler extends EventEmitter { } }); + logger.verbose(`Built ${asset.relativeName}...`); + if (this.cache && cacheMiss) { this.cache.write(asset.name, processed); } diff --git a/src/Logger.js b/src/Logger.js index dcdee4998d2..c9ffd19c98c 100644 --- a/src/Logger.js +++ b/src/Logger.js @@ -6,6 +6,8 @@ const {countBreaks} = require('grapheme-breaker'); const stripAnsi = require('strip-ansi'); const ora = require('ora'); const WorkerFarm = require('./workerfarm/WorkerFarm'); +const path = require('path'); +const fs = require('fs'); class Logger { constructor(options) { @@ -50,6 +52,10 @@ class Logger { } write(message, persistent = false) { + if (this.logLevel > 3) { + return this.verbose(message); + } + if (!persistent) { this.lines += this.countLines(message); } @@ -58,6 +64,27 @@ class Logger { this._log(message); } + verbose(message) { + if (this.logLevel < 4) { + return; + } + + let currDate = new Date(); + message = `[${currDate.toLocaleTimeString()}]: ${message}`; + if (this.logLevel > 4) { + if (!this.logFile) { + this.logFile = fs.createWriteStream( + path.join( + process.cwd(), + `parcel-debug-${currDate.toLocaleDateString()}@${currDate.toLocaleTimeString()}.log` + ) + ); + } + this.logFile.write(stripAnsi(message) + '\n'); + } + this._log(message); + } + log(message) { if (this.logLevel < 3) { return; @@ -103,7 +130,7 @@ class Logger { } clear() { - if (!this.color || this.isTest) { + if (!this.color || this.isTest || this.logLevel > 3) { return; } @@ -122,6 +149,10 @@ class Logger { return; } + if (this.logLevel > 3) { + return this.verbose(message); + } + let styledMessage = this.chalk.gray.bold(message); if (!this.spinner) { this.spinner = ora({ diff --git a/src/cli.js b/src/cli.js index 1723c1cbd47..837efdf8728 100755 --- a/src/cli.js +++ b/src/cli.js @@ -58,8 +58,8 @@ program .option('-V, --version', 'output the version number') .option( '--log-level ', - 'set the log level, either "0" (no output), "1" (errors), "2" (warnings + errors) or "3" (all).', - /^([0-3])$/ + 'set the log level, either "0" (no output), "1" (errors), "2" (warnings), "3" (info), "4" (verbose) or "5" (debug, creates a log file).', + /^([0-5])$/ ) .option('--cache-dir ', 'set the cache directory. defaults to ".cache"') .action(bundle); @@ -107,8 +107,8 @@ program ) .option( '--log-level ', - 'set the log level, either "0" (no output), "1" (errors), "2" (warnings + errors) or "3" (all).', - /^([0-3])$/ + 'set the log level, either "0" (no output), "1" (errors), "2" (warnings), "3" (info), "4" (verbose) or "5" (debug, creates a log file).', + /^([0-5])$/ ) .option('--cache-dir ', 'set the cache directory. defaults to ".cache"') .action(bundle); @@ -151,8 +151,8 @@ program ) .option( '--log-level ', - 'set the log level, either "0" (no output), "1" (errors), "2" (warnings + errors) or "3" (all).', - /^([0-3])$/ + 'set the log level, either "0" (no output), "1" (errors), "2" (warnings), "3" (info), "4" (verbose) or "5" (debug, creates a log file).', + /^([0-5])$/ ) .option('--cache-dir ', 'set the cache directory. defaults to ".cache"') .action(bundle);