1.1.2 • Published 8 years ago

sails-hook-logger v1.1.2

Weekly downloads
22
License
MIT
Repository
github
Last release
8 years ago

sails-hook-logger

A Sails hook for logging detailed request metadata and monitoring your API.

This hook is for Sails v1 and up, and it also maintains backwards compatibility for Sails <=v0.12. But be aware that it provides much richer default logging for requests handled via actions2 (which is only available in Sails v1).

Install

From your sails app:

$ npm install sails-hook-logger --save

That's it! Next time you lift, and then send a request to the server, you should see stuff getting logged.

It will look something like this:

screenshot of output

Configuration

Optionally, you can customize this hook in a few different ways by configuring sails.config.log.

For instance, you might create config/log.js:

// `config/log.js`

module.exports = {

  log: {

    /**
     * An array of route addresses to monitor.
     *
     * (e.g. [ 'get /foo/bar', 'post /foo', 'all /admin/*' ])
     *
     * Defaults to `[ '/*' ]`.
     */
    routesToLog: [
      '/*'
    ],

    /**
     * Request parameters which should NEVER be logged.
     * If seen, they will be replaced with "*REDACTED*"
     *
     * (e.g. "password")
     *
     * > WARNING:
     * > This is a SHALLOW check of request body, querystring, and route path parameters.
     * > Deeply nested properties with these names are not redacted.
     */
    dontLogParams: [
      'password',
      'token'
    ],

    /**
     * When request starts...
     *
     * > If omitted, this defaults to doing nothing.
     * > This can be useful for debugging.
     *
     * @param {Dictionary} report  [info about the request]
     * @param {Ref} req  [request object -- careful not to modify!]
     * @param {Ref} res  [response object -- careful not to modify!  And don't try to respond!]
     * @synchronous
     */
    onRequest: function onRequest(report, req, res) {

      // ...

      return;
    },

    /**
     * When response is sent...
     *
     * > If omitted, this defaults to logging request metadata to the
     * > console in a vaguely attractive way.  If you define this function,
     * > then it will override the default output.
     *
     * @param {Dictionary} report  [info about the request]
     * @param {Ref} req  [request object -- careful not to modify!]
     * @param {Ref} res  [response object -- careful not to modify!  And don't try to respond!]
     * @synchronous
     */
    onResponse: function onResponse(report, req, res) {

      // ...

      return;
    }
  }
};

Help

If you have further questions or are having trouble, click here.

Bugs   NPM version

To report a bug, click here.

Contributing

Please observe the guidelines and conventions laid out in the Sails project contribution guide when opening issues or submitting pull requests.

NPM info

License

MIT © 2013-2016 Mike McNeil

As for the Sails framework, it's free and open-source under the MIT License too.