title: Custom error formatting
body: <p>I have implemented my own custom error:</p>
  
  <pre><code>function MyError() {
      var temp = Error.apply(this, arguments);
      temp.name = this.name = 'MyError';
      this.stack = temp.stack;
      this.message = temp.message;
  }
  
  MyError.prototype = Object.create(Error.prototype, {
      constructor: {
          value: MyError,
          writable: true,
          configurable: true
      }
  });
  </code></pre>
  
  <p>And what I'm missing is to make it display itself on screen as it would when a regular unhanded error occurs, i.e. if we do <code>throw new Error('Hello!')</code>, we get output:</p>
  
  <pre><code>throw new Error('Hello!');
  ^
  
  Error: Hello!
      at Object.&lt;anonymous&gt; (D:\NodeJS\tests\test1.js:28:7)
      at Module._compile (module.js:425:26)
      at Object.Module._extensions..js (module.js:432:10)
      at Module.load (module.js:356:32)
      at Function.Module._load (module.js:313:12)
      at Function.Module.runMain (module.js:457:10)
      at startup (node.js:138:18)
      at node.js:974:3
  </code></pre>
  
  <p>Now I want the same nicely formatted output when I'm doing this:</p>
  
  <pre><code>try {
      throw new MyError("Ops!");
  } catch (e) {
      console.log(e);
  }
  </code></pre>
  
  <p>but instead I'm getting:</p>
  
  <pre><code>{ [MyError: Ops!]
    name: 'MyError',
    stack: 'MyError: Ops!\n    at MyError.Error (native)\n    at new MyError (D:\\NodeJS\\tests\\test1.js:2:22)\n    at Object.&lt;anonymous&gt; (D:\\NodeJS\\tests\\test1.js:22:11)\n    at Module._compile (module.js:425:26)\n    at O
  bject.Module._extensions..js (module.js:432:10)\n    at Module.load (module.js:356:32)\n    at Function.Module._load (module.js:313:12)\n    at Function.Module.runMain (module.js:457:10)\n    at startup (node.js:138:18)\n
  at node.js:974:3',
    message: 'Ops!' }
  </code></pre>
  
  <p>What else needs to be done to make <code>console.log(e)</code> output the same nicely formatted presentation for <code>MyError</code> automatically, without having to use explicit <code>e.stack</code> reference?</p>
  
  <p><strong>UPDATE:</strong> At first I saw some recommendations regarding method <code>toJSON</code> to be implemented, which I did, but it didn't quite work. I assume there must be an overridable method that <code>console.log</code> uses in order to format an error object, but what is it then?</p>