1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | 'use strict';
|
7 |
|
8 | var fmt = require('util').format;
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | module.exports = function(logger) {
|
15 | var buffer = [];
|
16 | if (logger.__capture_monkeypatch) {
|
17 | return;
|
18 | }
|
19 |
|
20 | logger.writeln = capture.bind(logger, logger.writeln);
|
21 | logger.write = capture.bind(logger, logger.write);
|
22 | logger.error = capture.bind(logger, logger.error);
|
23 | logger.info = capture.bind(logger, logger.info);
|
24 | logger.warn = capture.bind(logger, logger.warn);
|
25 | logger.debug = function() {};
|
26 |
|
27 | function capture(passthruFn) {
|
28 | var msg = fmt.apply(null, Array.prototype.slice.call(arguments, 1));
|
29 | buffer.push(msg);
|
30 | passthruFn.call(logger, msg);
|
31 | }
|
32 |
|
33 | logger.values = function(clear) {
|
34 | var res = buffer;
|
35 | if (clear || typeof clear === 'undefined') {
|
36 | buffer = [];
|
37 | }
|
38 | return res;
|
39 | };
|
40 |
|
41 | logger.clear = function() {
|
42 | buffer = [];
|
43 | };
|
44 |
|
45 | return logger;
|
46 | };
|