New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cantina-log

Package Overview
Dependencies
Maintainers
3
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cantina-log

JSON logging for Cantina apps

  • 4.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

cantina-log

JSON-powered logging for Cantina applications. Extends jog with some Cantina-specific functionality.

Usage

Setting up your app:

var app = require('cantina').createApp();

app.boot(function (err) {

  // Load the logging plugin.
  app.require('cantina-log');

  // Load the rest of your plugins.

  app.start();
});

Start logging...

// Perferred logging method:
app.log('type', {
  // data
})

// console.log-style logging.
app.log('My message with %s tokens in it', 'some');

// dump an object.
app.log({my: 'data'});

// Use levels:
app.log.info('type', { /* data */ });
app.log.debug('type', { /* data */ });
app.log.warn('type', { /* data */ });
app.log.error('type', { /* data */ });

Configuration

The following configuration (defaults shown) is supported.

{
  log: {
    trace: true,
    req: {
      enable: true,
      exclude: /(\.js$)|(\.css$)|(\/images.*)|(favicon.ico)|(\.hbs$)/
    }
  }
}
  • trace - Adds file and line number to all log entries. Should be turned OFF in production.
  • req
    • enable - Adds middleware that logs all requests.
    • exclude - A regular expression identifying paths to exclude from the logs.

Overriding console

  • app.log.replaceConsole() - Override console's logging methods with app.log variants.
  • app.log.restoreConsole() - Restore console to its orginal state.

Using a custom jog store

jog logs using a 'store'. The default is StdStore which logs to stdout and stderr. If you prefer to use a FileStore, RedisStore, or something custom you can tell the app like so:

var app = require('cantina').createApp()
  , jog = require('jog2');

app.boot(function (err) {
  // Pre-log app setup.

  // Specify your store.
  app.loggerStore = new jog.FileStore('/tmp/log');

  // Load the logging plugin.
  app.require('cantina-log');

  // Load the rest of your plugins.

  app.start();
});

Data serialization

You may find yourself logging simliar kinds of application object, such as 'user' models. You can log the raw user objects and implement a serializer to santize it for the logs.

app.hook('log:serialize').add(function (data, next) {
  if (data.user) {
    var user = data.user;
    data.user = {
      id: user.id,
      name: user.first + ' ' + user.last,
      // ... etc.
    };
  }
  next();
});

CLI

Now that your log output is in nice, parseable JSON, you may want to be able to read it on the command-line in a more human-friendly format. Joli is a CLI that helps you format newline-separated JSON object (like the ones cantina-log outputs).

Please see joli's README for full documentation.


Developed by Terra Eclipse

Terra Eclipse, Inc. is a nationally recognized political technology and strategy firm located in Santa Cruz, CA and Washington, D.C.

FAQs

Package last updated on 29 Aug 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc