gulpjs / gulp-cli

Command Line Interface for gulp.
MIT License
400 stars 106 forks source link

Batch logging to avoid mixing logs from async code #72

Open phated opened 8 years ago

phated commented 8 years ago

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

BurtHarris commented 7 years ago

@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 commented 7 years ago

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

phated commented 7 years ago

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

phated commented 7 years ago

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

radum commented 6 years ago

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.

yocontra commented 6 years ago

@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.