old_contents: 'use strict';
  
  var config = require('./config');
  
  
  // Hack to allow proper logging of Error.
  Object.defineProperty(Error.prototype, 'message', {
      configurable: true,
      enumerable: true
  });
  Object.defineProperty(Error.prototype, 'stack', {
      configurable: true,
      enumerable: true
  });
  
  
  var scribe = require('scribe-js')({
      rootPath: config.server.logging.directory,
  });
  
  function addLogger(name, color, active) {
      if (active) {
          process.console.addLogger(name, color, {
              logInConsole: false
          });
      } else {
          process.console[name] = function () {
              this._reset(); // forget tags, etc. for this logging event
          };
      }
  }
  
  addLogger('debug', 'grey', config.server.logging.debug);
  addLogger('profile', 'blue', config.server.logging.profile);
  
  angular.module('ffffng').factory('Logger', function (app) {
      if (config.server.logging.logRequests) {
          app.use(scribe.express.logger());
      }
      if (config.server.internal.active) {
          var prefix = config.server.rootPath === '/' ? '' : config.server.rootPath;
          app.use(prefix + '/internal/logs', scribe.webPanel());
      }
  
      return process.console;
  });
  
  module.exports = process.console;
  
new_contents: 'use strict';
  
  var config = require('./config');
  
  
  // Hack to allow proper logging of Error.
  Object.defineProperty(Error.prototype, 'message', {
      configurable: true,
      enumerable: true
  });
  Object.defineProperty(Error.prototype, 'stack', {
      configurable: true,
      enumerable: true
  });
  
  
  var scribe = require('scribe-js')({
      rootPath: config.server.logging.directory,
  });
  
  function addLogger(name, color, active) {
      if (active) {
          process.console.addLogger(name, color, {
              logInConsole: false
          });
      } else {
          process.console[name] = function () {
              this._reset(); // forget tags, etc. for this logging event
          };
      }
  }
  
  addLogger('debug', 'grey', config.server.logging.debug);
  addLogger('profile', 'blue', config.server.logging.profile);
  
  angular.module('ffffng').factory('Logger', function (app) {
      if (config.server.logging.logRequests) {
          app.use(scribe.express.logger());
      }
      if (config.server.internal.active) {
          var prefix = config.server.rootPath === '/' ? '' : config.server.rootPath;
          app.use(prefix + '/internal/logs', scribe.webPanel());
      }
  
      // Hack to allow correct logging of node.js Error objects.
      // See: https://github.com/bluejamesbond/Scribe.js/issues/70
      Object.defineProperty(Error.prototype, 'toJSON', {
          configurable: true,
          value: function () {
              var alt = {};
              var storeKey = function (key) {
                  alt[key] = this[key];
              };
              Object.getOwnPropertyNames(this).forEach(storeKey, this);
              return alt;
          }
      });
  
      return process.console;
  });
  
  module.exports = process.console;
  
subject: Allow proper logging of node.js Error objects.