2016-06-02 9 views
0

Ich habe ein lästiges Problem in meinem node.js Testcode. Irgendwo gibt etwas eine Fehlermeldung aus, die console.log verwendet (denke ich). Ich bin ein bisschen anspruchsvoll wegen der Unordnung in meinen Logs, also versuche ich zu fangen, was auch immer es ist. Ich bin mir 100% sicher, dass es nicht in meinem Code ist, sondern in einer Bibliothek, die wir verwenden.Pause in console.log?

Dies brachte mich zu einer interessanten Frage: Ist es möglich, einen Breakpoint in console.log zu setzen? Ich arbeite in WebStorm IDE und ich laufe auf node.js 4.4.3.

Antwort

1

Sie console.log mit einer benutzerdefinierten Version überschreiben könnte, die in den Debugger bricht:

var _log = console.log.bind(console); 

// es6 
console.log = (...args) => { 
    _log(...args); 
    debugger; 
} 

// es5 
console.log = function() { 
    _log.apply(null, arguments); 
    debugger; 
} 

Hier ist ein Einzeiler, wenn Sie fügen Sie für einen Drive-Test in einem Browser-Konsole möchten/kopieren (Verifiziert in Chrome 51, Safari 9.1 und Firefox 46):

var _log = console.log.bind(console); console.log = function() { _log.apply(null, arguments); debugger; } 
+0

Vielen Dank, tony19. Das hat den Trick gemacht. Es ist ein unechter console.log-Aufruf innerhalb von loopback application.js. –

0

könnten Sie so etwas versuchen.

process.on('uncaughtException', function(err) { 
    console.log('Threw Exception: ' + err.stack); 
}); 
+0

Danke Jacob, aber ich war nicht auf der Suche nach einer nicht abgefangenen Ausnahme. Nur ein console.log-Aufruf. –