progress-logger-js
v0.5.1
Published
Node.js module for logging progress information and statistics about long-lasting activities
Downloads
30
Readme
progress-logger-js
Node.js module for logging progress information and statistics about long-lasting activities
Usage
Installation:
npm install progress-logger-js --save
usage:
const ProgressLogger = require("progress-logger-js").ProgressLogger;
usage with TypeScript:
import {ProgressLogger} from "progress-logger-js"
Consider the following fake long-lasting process:
let progress = new ProgressLogger();
for (var i = 0; i < 100; i++){
progress.increment()
await sleep(200);
}
progress.end()
Output will be:
Processing started at 2016-11-16T00:24:49.317Z
Processing ... 26 (5.2/sec)
Processing ... 51 (5.0/sec)
Processing ... 76 (5.0/sec)
Processing completed (100) in 20.0 seconds (5.0/sec)
You can also customize some options:
let progress = new ProgressLogger({
label: "my-label",
logInterval: 2000,
count: 100
});
In this case output will be:
my-label started at 2016-11-16T00:20:37.382Z
my-label ... 11.00% (11 of 100, 5.5/sec)
my-label ... 21.00% (21 of 100, 5.0/sec)
my-label ... 31.00% (31 of 100, 5.0/sec)
my-label ... 41.00% (41 of 100, 5.0/sec)
my-label ... 51.00% (51 of 100, 5.0/sec)
my-label ... 61.00% (61 of 100, 5.0/sec)
my-label ... 71.00% (71 of 100, 5.0/sec)
my-label ... 81.00% (81 of 100, 5.0/sec)
my-label ... 91.00% (91 of 100, 5.0/sec)
my-label ... 100.00% (100 of 100, 5.0/sec)
my-label completed (100) in 20.0 seconds (5.0/sec)
Statistics
Some more statistics are also available using progressLogger.stats
method:
{ label: 'my-label',
start: 2016-11-16T00:24:49.317Z,
end: 2016-11-16T00:25:09.359Z,
elapsed: 20042,
avg: 200.42,
rate: 4.98,
count: 100,
success: 1,
errors : [] }
NOTE: avg
is simply calculated using elapsed/count
, if you are running steps in parallel this metric is not correct.
Handling promises
To handle the progress increment of a Promise
just use progressLogger.incrementPromise
method:
progress.incrementPromise(yourPromise);
This will automatically catch errors.
Handling errors
To log errors you can use:
progress.increment(err);
or passing a Promise
:
progress.incrementPromise(yourPromise);