summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2013-05-21 15:22:05 -0700
committerisaacs <i@izs.me>2013-05-21 16:39:50 -0700
commit896b2aa7074fc886efd7dd0a397d694763cac7ce (patch)
tree10142a9e81afb77b762098b138caa50911e7a578 /lib
parent0fefcc1690f65593aba768b78e1b97b925f8caad (diff)
downloadandroid-node-v8-896b2aa7074fc886efd7dd0a397d694763cac7ce.tar.gz
android-node-v8-896b2aa7074fc886efd7dd0a397d694763cac7ce.tar.bz2
android-node-v8-896b2aa7074fc886efd7dd0a397d694763cac7ce.zip
util: Add debuglog, deprecate console lookalikes
Diffstat (limited to 'lib')
-rw-r--r--lib/_http_client.js4
-rw-r--r--lib/_http_common.js7
-rw-r--r--lib/module.js7
-rw-r--r--lib/net.js15
-rw-r--r--lib/timers.js15
-rw-r--r--lib/tls.js28
-rw-r--r--lib/util.js167
7 files changed, 114 insertions, 129 deletions
diff --git a/lib/_http_client.js b/lib/_http_client.js
index 71f5c335d0..339a5c785d 100644
--- a/lib/_http_client.js
+++ b/lib/_http_client.js
@@ -205,7 +205,7 @@ function socketErrorListener(err) {
var socket = this;
var parser = socket.parser;
var req = socket._httpMessage;
- debug('HTTP SOCKET ERROR: ' + err.message + '\n' + err.stack);
+ debug('SOCKET ERROR:', err.message, err.stack);
if (req) {
req.emit('error', err);
@@ -325,7 +325,7 @@ function parserOnIncomingClient(res, shouldKeepAlive) {
// to the content-length of the entity-body had the request
// been a GET.
var isHeadResponse = req.method == 'HEAD';
- debug('AGENT isHeadResponse ' + isHeadResponse);
+ debug('AGENT isHeadResponse', isHeadResponse);
if (res.statusCode == 100) {
// restart the parser, as this is a continue message.
diff --git a/lib/_http_common.js b/lib/_http_common.js
index 8c97886272..1ed8abc8c6 100644
--- a/lib/_http_common.js
+++ b/lib/_http_common.js
@@ -28,12 +28,7 @@ var readStart = incoming.readStart;
var readStop = incoming.readStop;
-var debug;
-if (process.env.NODE_DEBUG && /http/.test(process.env.NODE_DEBUG)) {
- debug = function(x) { console.error('HTTP: %s', x); };
-} else {
- debug = function() { };
-}
+var debug = require('util').debuglog('http');
exports.debug = debug;
exports.CRLF = '\r\n';
diff --git a/lib/module.js b/lib/module.js
index f98a42610f..d34ce10f15 100644
--- a/lib/module.js
+++ b/lib/module.js
@@ -62,12 +62,7 @@ Module.wrap = NativeModule.wrap;
var path = NativeModule.require('path');
-Module._debug = function() {};
-if (process.env.NODE_DEBUG && /module/.test(process.env.NODE_DEBUG)) {
- Module._debug = function(x) {
- console.error(x);
- };
-}
+Module._debug = NativeModule.require('util').debuglog('module');
// We use this alias for the preprocessor that filters it out
diff --git a/lib/net.js b/lib/net.js
index c1d9bb6c0a..e248bdfb3c 100644
--- a/lib/net.js
+++ b/lib/net.js
@@ -51,20 +51,7 @@ function createHandle(fd) {
}
-var debug;
-if (process.env.NODE_DEBUG && /net/.test(process.env.NODE_DEBUG)) {
- var pid = process.pid;
- debug = function(x) {
- // if console is not set up yet, then skip this.
- if (!console.error)
- return;
- console.error('NET: %d', pid,
- util.format.apply(util, arguments).slice(0, 500));
- };
-} else {
- debug = function() { };
-}
-
+var debug = util.debuglog('net');
function isPipeName(s) {
return typeof s === 'string' && toNumber(s) === false;
diff --git a/lib/timers.js b/lib/timers.js
index 708f0af16e..2b0745c5a4 100644
--- a/lib/timers.js
+++ b/lib/timers.js
@@ -26,12 +26,7 @@ var assert = require('assert').ok;
// Timeout values > TIMEOUT_MAX are set to 1.
var TIMEOUT_MAX = 2147483647; // 2^31-1
-var debug;
-if (process.env.NODE_DEBUG && /timer/.test(process.env.NODE_DEBUG)) {
- debug = function() { require('util').error.apply(this, arguments); };
-} else {
- debug = function() { };
-}
+var debug = require('util').debuglog('timer');
// IDLE TIMEOUTS
@@ -78,17 +73,17 @@ function listOnTimeout() {
var msecs = this.msecs;
var list = this;
- debug('timeout callback ' + msecs);
+ debug('timeout callback %d', msecs);
var now = Date.now();
- debug('now: ' + now);
+ debug('now: %s', now);
var first;
while (first = L.peek(list)) {
var diff = now - first._idleStart;
if (diff < msecs) {
list.start(msecs - diff, 0);
- debug(msecs + ' list wait because diff is ' + diff);
+ debug('%d list wait because diff is %d', msecs, diff);
return;
} else {
L.remove(first);
@@ -121,7 +116,7 @@ function listOnTimeout() {
}
}
- debug(msecs + ' list empty');
+ debug('%d list empty', msecs);
assert(L.isEmpty(list));
list.close();
delete lists[msecs];
diff --git a/lib/tls.js b/lib/tls.js
index c0b59d99b7..3af078a966 100644
--- a/lib/tls.js
+++ b/lib/tls.js
@@ -52,13 +52,7 @@ exports.getCiphers = function() {
};
-var debug;
-if (process.env.NODE_DEBUG && /tls/.test(process.env.NODE_DEBUG)) {
- debug = function(a) { console.error('TLS:', a); };
-} else {
- debug = function() { };
-}
-
+var debug = util.debuglog('tls');
var Connection = null;
try {
@@ -328,10 +322,10 @@ CryptoStream.prototype._write = function write(data, encoding, cb) {
// Write current buffer now
var written;
if (this === this.pair.cleartext) {
- debug('cleartext.write called with ' + data.length + ' bytes');
+ debug('cleartext.write called with %d bytes', data.length);
written = this.pair.ssl.clearIn(data, 0, data.length);
} else {
- debug('encrypted.write called with ' + data.length + ' bytes');
+ debug('encrypted.write called with %d bytes', data.length);
written = this.pair.ssl.encIn(data, 0, data.length);
}
@@ -354,9 +348,9 @@ CryptoStream.prototype._write = function write(data, encoding, cb) {
// Whole buffer was written
if (written === data.length) {
if (this === this.pair.cleartext) {
- debug('cleartext.write succeed with ' + data.length + ' bytes');
+ debug('cleartext.write succeed with %d bytes', data.length);
} else {
- debug('encrypted.write succeed with ' + data.length + ' bytes');
+ debug('encrypted.write succeed with %d bytes', data.length);
}
return cb(null);
@@ -375,9 +369,9 @@ CryptoStream.prototype._write = function write(data, encoding, cb) {
this._pendingCallback = cb;
if (this === this.pair.cleartext) {
- debug('cleartext.write queued with ' + data.length + ' bytes');
+ debug('cleartext.write queued with %d bytes', data.length);
} else {
- debug('encrypted.write queued with ' + data.length + ' bytes');
+ debug('encrypted.write queued with %d bytes', data.length);
}
};
@@ -404,10 +398,10 @@ CryptoStream.prototype._read = function read(size) {
var out;
if (this === this.pair.cleartext) {
- debug('cleartext.read called with ' + size + ' bytes');
+ debug('cleartext.read called with %d bytes', size);
out = this.pair.ssl.clearOut;
} else {
- debug('encrypted.read called with ' + size + ' bytes');
+ debug('encrypted.read called with %d bytes', size);
out = this.pair.ssl.encOut;
}
@@ -437,9 +431,9 @@ CryptoStream.prototype._read = function read(size) {
assert(bytesRead >= 0);
if (this === this.pair.cleartext) {
- debug('cleartext.read succeed with ' + bytesRead + ' bytes');
+ debug('cleartext.read succeed with %d bytes', bytesRead);
} else {
- debug('encrypted.read succeed with ' + bytesRead + ' bytes');
+ debug('encrypted.read succeed with %d bytes', bytesRead);
}
// Try writing pending data
diff --git a/lib/util.js b/lib/util.js
index 58c7312c95..4f9d06943e 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -81,29 +81,22 @@ exports.deprecate = function(fn, msg) {
};
-exports.print = function() {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- process.stdout.write(String(arguments[i]));
- }
-};
-
-
-exports.puts = function() {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- process.stdout.write(arguments[i] + '\n');
- }
-};
-
-
-exports.debug = function(x) {
- process.stderr.write('DEBUG: ' + x + '\n');
-};
-
-
-var error = exports.error = function(x) {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- process.stderr.write(arguments[i] + '\n');
+var debugs = {};
+var debugEnviron = process.env.NODE_DEBUG || '';
+exports.debuglog = function(set) {
+ set = set.toUpperCase();
+ if (!debugs[set]) {
+ if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
+ var pid = process.pid;
+ debugs[set] = function() {
+ var msg = exports.format.apply(exports, arguments);
+ console.error('%s %d: %s', set, pid, msg);
+ };
+ } else {
+ debugs[set] = function() {};
+ }
}
+ return debugs[set];
};
@@ -466,13 +459,6 @@ function objectToString(o) {
}
-exports.p = exports.deprecate(function() {
- for (var i = 0, len = arguments.length; i < len; ++i) {
- error(exports.inspect(arguments[i]));
- }
-}, 'util.p: Use console.error() instead.');
-
-
function pad(n) {
return n < 10 ? '0' + n.toString(10) : n.toString(10);
}
@@ -497,51 +483,6 @@ exports.log = function() {
};
-exports.exec = exports.deprecate(function() {
- return require('child_process').exec.apply(this, arguments);
-}, 'util.exec is now called `child_process.exec`.');
-
-
-function pump(readStream, writeStream, callback) {
- var callbackCalled = false;
-
- function call(a, b, c) {
- if (callback && !callbackCalled) {
- callback(a, b, c);
- callbackCalled = true;
- }
- }
-
- readStream.addListener('data', function(chunk) {
- if (writeStream.write(chunk) === false) readStream.pause();
- });
-
- writeStream.addListener('drain', function() {
- readStream.resume();
- });
-
- readStream.addListener('end', function() {
- writeStream.end();
- });
-
- readStream.addListener('close', function() {
- call();
- });
-
- readStream.addListener('error', function(err) {
- writeStream.end();
- call(err);
- });
-
- writeStream.addListener('error', function(err) {
- readStream.destroy();
- call(err);
- });
-}
-exports.pump = exports.deprecate(pump,
- 'util.pump() is deprecated. Use readableStream.pipe() instead.');
-
-
/**
* Inherit the prototype methods from one constructor into another.
*
@@ -582,3 +523,81 @@ exports._extend = function(origin, add) {
function hasOwnProperty(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
+
+
+// Deprecated old stuff.
+
+exports.p = exports.deprecate(function() {
+ for (var i = 0, len = arguments.length; i < len; ++i) {
+ console.error(exports.inspect(arguments[i]));
+ }
+}, 'util.p: Use console.error() instead');
+
+
+exports.exec = exports.deprecate(function() {
+ return require('child_process').exec.apply(this, arguments);
+}, 'util.exec is now called `child_process.exec`.');
+
+
+exports.print = exports.deprecate(function() {
+ for (var i = 0, len = arguments.length; i < len; ++i) {
+ process.stdout.write(String(arguments[i]));
+ }
+}, 'util.print: Use console.log instead');
+
+
+exports.puts = exports.deprecate(function() {
+ for (var i = 0, len = arguments.length; i < len; ++i) {
+ process.stdout.write(arguments[i] + '\n');
+ }
+}, 'util.puts: Use console.log instead');
+
+
+exports.debug = exports.deprecate(function(x) {
+ process.stderr.write('DEBUG: ' + x + '\n');
+}, 'util.debug: Use console.error instead');
+
+
+exports.error = exports.deprecate(function(x) {
+ for (var i = 0, len = arguments.length; i < len; ++i) {
+ process.stderr.write(arguments[i] + '\n');
+ }
+}, 'util.error: Use console.error instead');
+
+
+exports.pump = exports.deprecate(function(readStream, writeStream, callback) {
+ var callbackCalled = false;
+
+ function call(a, b, c) {
+ if (callback && !callbackCalled) {
+ callback(a, b, c);
+ callbackCalled = true;
+ }
+ }
+
+ readStream.addListener('data', function(chunk) {
+ if (writeStream.write(chunk) === false) readStream.pause();
+ });
+
+ writeStream.addListener('drain', function() {
+ readStream.resume();
+ });
+
+ readStream.addListener('end', function() {
+ writeStream.end();
+ });
+
+ readStream.addListener('close', function() {
+ call();
+ });
+
+ readStream.addListener('error', function(err) {
+ writeStream.end();
+ call(err);
+ });
+
+ writeStream.addListener('error', function(err) {
+ readStream.destroy();
+ call(err);
+ });
+}, 'util.pump(): Use readableStream.pipe() instead');