intercept-stdout
Version:
Hooking Node.js stdout
52 lines (33 loc) • 1.64 kB
Markdown
> intercept-stdout captures or modifies stdout and/or stderr.
> _<sup>Based on [this](https://gist.github.com/benbuckman/2758563) gist</sup>_
```javascript
var intercept = require("intercept-stdout"),
captured_text = "";
var unhook_intercept = intercept(function(txt) {
captured_text += txt;
});
console.log("This text is being captured");
// Let's stop capturing stdout.
unhook_intercept();
console.log("This text is not being captured");
```
```javascript
var intercept = require("intercept-stdout");
var unhook_intercept = intercept(function(txt) {
return txt.replace( /this/i , 'that' );
});
console.log("This text is being modified");
// -> that text is being modified
```
npm install
npm test
Starting in Version 0.1.2, you may now specify two interceptor callbacks. If a second interceptor callback is specified, the second callback will be invoked for `stderr` output.
Versions > 0.1.1 hook both `stdout` and `stderr`. This change enables capturing of `console.log`, `console.info`, `console.warn`, and `console.error`. This change may break pre-existing interceptors if your interceptor expected output to be a full line of text.
Popular modules such as [`mocha`](http://mochajs.org/) and [`winston`](https://github.com/winstonjs/winston) may colorize output by inserting ANSI escape codes into the output stream. Both `mocha` and `winston` make multiple calls to the output streams while colorizing a line -- in order to be robust, your code should anticipate and deal with this.