Automatically migrated from Gitolite

Sven Slootweg 23f4667db4 1.0.1 4 years ago
lib 59b3d64916 Remove unnecessary interpolation, and display string-typed error properties literally 4 years ago
src 59b3d64916 Remove unnecessary interpolation, and display string-typed error properties literally 4 years ago
.gitignore 49de67aedf Ignore debug log 4 years ago
CHANGELOG.md 40c9baa4cb Correct a typo in the changelog 4 years ago
README.md 62126591e4 Add documentation, add changelog, update donation text 4 years ago
gulpfile.js 165d408a6d Initial commit 4 years ago
index.js 165d408a6d Initial commit 4 years ago
package.json 23f4667db4 1.0.1 4 years ago
test.js 04c131f388 Hide name/message from error property display, and generate a more accurate error message if a stacktrace is absent 4 years ago

README.md

gulp-named-log

A logging utility, primarily intended for use with Gulp or other Vinyl streams. Loosely inspired by gulp-util. Why you might want to use it:

  • Log lines are prefixed by time, name, and optionally severity.
  • Errors are displayed verbosely, in such a way that all the important details are immediately obvious.
  • Supports Vinyl (Gulp) streams - simply pipe through a logstream, and every affected file will be logged.

License

WTFPL or CC0, whichever you prefer. A donation and/or attribution are appreciated, but not required.

Donate

Maintaining open-source projects takes a lot of time, and the more donations I receive, the more time I can dedicate to open-source. If this module is useful to you, consider making a donation!

You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else. Thank you!

Contributing

Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in src/, not those in lib/.

Build tool of choice is gulp; simply run gulp while developing, and it will watch for changes.

Be aware that by making a pull request, you agree to release your modifications under the licenses stated above.

Usage

var gulp = require("gulp");
var gulpBabel = require("gulp-babel");
var gulpCache = require("gulp-cached");
var gulpPlumber = require("gulp-plumber");
var gulpNamedLog = require("gulp-named-log");

// We define the different named loggers here.
var babelLogger = gulpNamedLog("babel");
var gulpLogger = gulpNamedLog("gulp");

var source = ["src/**/*.js"]

gulp.task('babel', function() {
	return gulp.src(source)
		.pipe(gulpPlumber())
		.pipe(gulpCache("babel"))
		.pipe(gulpBabel({presets: ["es2015"]}))
		.pipe(babelLogger.stream()) // This logs every file going through.
		.pipe(gulp.dest("lib/"));
});

gulp.task('watch', function () {
	gulpLogger.info("Watching for changes:", source); // This logs once.
	gulp.watch(source, ['babel']);
});

gulp.task('default', ['babel', 'watch']);

API

gulpNamedLog(name, options)

Creates a new gulp-named-log instace.

  • name: The name prefix that is used for each line that this logger logs.
  • options:
    • basePath: Optional. The root path of the project. This is used to display shorter paths when using the logger as a Vinyl stream - rather than showing the full path of the file, it will show the path relative to the project root.
    • byteLimit: Defaults to 20. When the logger is used as a Vinyl stream, this is the maximum amount of bytes that will be rendered (in hexadecimal representation) for each file line.

logger.log(values...)

Logs each of the provided values, much like console.log would - but with a timestamp and logger name prefixed.

logger.debug(values...)

logger.info(values...)

logger.warn(values...)

logger.error(values...)

Like logger.log, but along with a timestamp and logger name, the line will also include the specified severity.

logger.stream()

Returns a new Vinyl stream, that will log (and pass through) every file it receives. In a typical gulp.watch + gulp-cache setup, this will only include the files that were modified (even if the result stays the same).