-
Notifications
You must be signed in to change notification settings - Fork 644
Description
Summary
Currently various libraries and applications that use terminal.writeVerboseLine
and similar have no way of knowing if the information will ever make it to a file or the user. If the ITerminal
could be inspected to determine the minimum severity of messages that will be visible, the effort of constructing data that is only visible with verbose logging could potentially be skipped where it will not be retained.
Since ultimately the authority on message severity comes from the underlying ITerminalProvider
implementations/instances, this information would need to be surfaced there and aggregated inside of ITerminal
.
As a specific example, heft-lint-plugin
performs a bunch of work to compute ESLint rule timings, but that information is only exposed when running with --verbose
:
rushstack/heft-plugins/heft-lint-plugin/src/Eslint.ts
Lines 184 to 199 in 7aa7b9f
const timings: [string, number][] = Array.from(this._eslintTimings).sort( | |
(x: [string, number], y: [string, number]) => { | |
return y[1] - x[1]; | |
} | |
); | |
for (const [ruleName, duration] of timings) { | |
if (duration > 0) { | |
this._terminal.writeVerboseLine(`Rule "${ruleName}" duration: ${duration.toFixed(3)} ms`); | |
} else { | |
omittedRuleCount++; | |
} | |
} | |
if (omittedRuleCount > 0) { | |
this._terminal.writeVerboseLine(`${omittedRuleCount} rules took 0ms`); | |
} |
Metadata
Metadata
Assignees
Labels
Type
Projects
Status