Jump To …
winston/common.html winston/config/cli-config.html winston/config/npm-config.html winston/config/syslog-config.html winston/config.html winston/exception.html winston/logger.html winston/transports/console.html winston/transports/couchdb.html winston/transports/file.html winston/transports/loggly.html winston/transports/transport.html winston/transports/webhook.html winston/transports.html winston.html

# exception.js

¶

    /*
     * exception.js: Utility methods for gathing information about uncaughtExceptions.
     *
     * (C) 2010 Charlie Robbins
     * MIT LICENCE
     *
     */

    var os = require('os'),
        stackTrace = require('stack-trace');

    var exception = exports;

    exception.getAllInfo = function (err) {
      return {
        process: exception.getProcessInfo(),
        os:      exception.getOsInfo(),
        trace:   exception.getTrace(err)
      };
    };

    exception.getProcessInfo = function () {
      return {
        pid:         process.pid,
        uid:         process.getuid(),
        gid:         process.getgid(),
        cwd:         process.cwd(),
        execPath:    process.execPath,
        version:     process.version,
        argv:        process.argv,
        memoryUsage: process.memoryUsage()
      };
    };

    exception.getOsInfo = function () {
      return {
        loadavg: os.loadavg(),
        uptime:  os.uptime()
      };
    };

    exception.getTrace = function (err) {
      var trace = err ? stackTrace.parse(err) : stackTrace.get();
      return trace.map(function (site) {
        return {
          column:   site.getColumnNumber(),
          file:     site.getFileName(),
          function: site.getFunctionName(),
          line:     site.getLineNumber(),
          method:   site.getMethodName(),
          native:   site.isNative(),
        }
      });
    };