From 54e420eb58a8bb78310ae8eac63252616975c9b9 Mon Sep 17 00:00:00 2001 From: osher Date: Tue, 31 Jul 2012 14:32:03 +0300 Subject: [PATCH] Update lib/layouts.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Errors sometimes carry additional attributes on them as part of the passed error data. A utility that utilizes it, for example - is called 'errs', which is in use for instance 'nano' - the couch-db driver. when only the stack is printed - all the additional information that is augmented on the error object does not sink to the log and is lost. consider the following code: ``` //the oups throwing utility function oups(){   e = new Error();   extend(     { message    : "Oups error"     , description: "huston, we got a problem"     , status     : "MESS"     , errorCode  : 991     , arr :[1,2,3,4,{}]     , data:        { c:{}       , d:{e:{}}       }     }   throw e; } var log = require('log4js') try{   oups() } catch( e ) {    log.error("error on oups", e ); } ``` output before the fix ``` error on oups Error: Oups error     at repl:1:11     at REPLServer.eval (repl.js:80:21)     at Interface. (repl.js:182:12)     at Interface.emit (events.js:67:17)     at Interface._onLine (readline.js:162:10)     at Interface._line (readline.js:426:8)     at Interface._ttyWrite (readline.js:603:14)     at ReadStream. (readline.js:82:12)     at ReadStream.emit (events.js:88:20) ``` output after the fix would be ``` error on oups { [Error: My error message]   name: 'Error',   description: 'huston, we got a problem',   status: 'MESS',   errorCode: 991,   arr: [ 1, 2, 3, 4, {} ],   data: { c: {}, d: { e: {} } } } Error: Oups error     at repl:1:11     at REPLServer.eval (repl.js:80:21)     at Interface. (repl.js:182:12)     at Interface.emit (events.js:67:17)     at Interface._onLine (readline.js:162:10)     at Interface._line (readline.js:426:8)     at Interface._ttyWrite (readline.js:603:14)     at ReadStream. (readline.js:82:12)     at ReadStream.emit (events.js:88:20) ``` --- lib/layouts.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/layouts.js b/lib/layouts.js index 7daec65..1b233ea 100644 --- a/lib/layouts.js +++ b/lib/layouts.js @@ -49,10 +49,9 @@ function formatLogData(logData) { if (output) { output += ' '; } + output += util.inspect(item); if (item && item.stack) { - output += item.stack; - } else { - output += util.inspect(item); + output += "\n" + item.stack; } });