gulp-cli icon indicating copy to clipboard operation
gulp-cli copied to clipboard

Batch logging to avoid mixing logs from async code

Open phated opened this issue 9 years ago • 6 comments

Ref https://github.com/gulpjs/gulp/issues/361

phated avatar Apr 05 '16 02:04 phated

@phated this topic interests me. Might be something I could help with.

Is there you got anything written down about logging principles in gulp? I'm particularly interested in logging from external tools, which might well be running async. It seems reasonable we might batch up such logging but not display it unless there is an error, and provide hooks for extracting meaningful information from the output. For example, I've got a tool which says things like

Generating file 'C:\code\antlr4ts\src\tree\xpath\.\XPathLexer.ts' for grammar 'XPathLexer.g4'
Generating file 'C:\code\antlr4ts\src\tree\xpath\.\XPathLexer.tokens' for grammar 'XPathLexer.g4'

Which seems like it might map well into output vinyl files rather than logging output, provided everything works.

BurtHarris avatar Jun 07 '17 01:06 BurtHarris

Seems like this doesn't belong in the cli project, am I mistaken?

BurtHarris avatar Jun 07 '17 01:06 BurtHarris

The CLI converts messages from https://github.com/gulpjs/gulplog into console.log, so yes, it belongs here.

phated avatar Jun 07 '17 18:06 phated

Relevant code is in gulplog, https://github.com/gulpjs/gulp-cli/blob/master/lib/versioned/%5E4.0.0/log/events.js and https://github.com/gulpjs/gulp-cli/blob/master/lib/shared/log/toConsole.js

phated avatar Jun 07 '17 18:06 phated

Can we abstract out the logging part out of the CLI one can use whatever logging method one needs?

We could have the default behaviour there, but external logging services could be used to suppress the default one. This will solve this problem and many others I guess.

For me now in particular I'm considering moving away from gulp just because of this where I can't control how the task resolutions are logged.

radum avatar Oct 20 '17 13:10 radum

@radum Your comment is unrelated to this issue, you should open a new ticket if you have a suggestion. Sounds like you want to be able to overwrite the logger the CLI uses with your own, which is a feature suggestion.

yocontra avatar Oct 20 '17 15:10 yocontra