4.0.0 • Published 10 months ago

swn-logger v4.0.0

Weekly downloads
9
License
MIT
Repository
github
Last release
10 months ago

swaven-logger

Logging utility built over Winston

Provides a simple interface to log to stdout, file or redis.

Usage

var mainLogger = require('swn-logger').create('my-project', config),
    logger2 = require('swn-logger').create('subsystem')

mainLogger.info('Error')

API

create(system, [config])

Instanciates a logger for the given system.

Parameters:

system string, mandatory. The name of the logger.

config object. Logger configuration. Only needed for the first logger created for the application.
Properties:

  • level: Possible values:debug, info, warn, error. Required level for events to be written. Events below this level are ignored. Defaults to debug.

  • targets: Array of object. Defines log targets. Supported properties:

    nametypemandatory*transportdescription
    typestring*output destination: stdout, file, redis, datadog
    pathstringfilepath to file. folder must exist.
    hoststringredisredis host.
    portstring|numberredisredis host port number. Can be ignored if host contains both, separated by colon :.
    keystringrediskey used to store events.
    servicestringdatadogservice name
    hostnamestringdatadoglogger host name
    secretstringdatadogAWS secret id for datadog API key.
  • colors: object. Define alternate colors for stdout output. Each key is a log level, value is the associated color.

  • quiet: boolean. Set to false to output system registration message. Default: true.

(*) mandatory if using the relevant output target.

debug(msg, [data])

warn(msg, [data])

info(msg, [data])

Logs an event with the appropriate level.

Parameters:

msg string. Event message

data object. Optional data, serialized and added to the event.

error(err, [data])

Logs an error.

Parameters:

err string, Error or VError. Error to log. If is an instance of Error or VError, the stack trace is logged. See VError for more details.

data object. Optional data, added to event if msg is a string.

ready

Returns a promise that resolves when all transports are initialized. Logging before that means losing logging for transports that are not ready.

Configuration example

var config = {
  level: 'debug',
  targets: [
    {
      type: 'stdout'
    },
    {
      type: 'file',
      path: 'trace.log'
      },
    {
      type: 'redis',
      host: '127.0.0.1:6379',
      key: 'test'
    },
    {
      type: 'datadog',
      hostname: 'test-instance', 
      service: 'foo',
      secret: 'aws-secret-id'
    }
  ]
}

var logger = require('swn-logger').create('test1', config)

await logger.ready

Notes

  • Datadog apikey is retrieved asynchronously, and the transport is added async'ly too. Log messages before that will not be sent to datadog.
  • the old redis dev dependency is necessary for winston-redis.
3.2.0

10 months ago

4.0.0

10 months ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.2

2 years ago

3.1.0

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.0.1

6 years ago

2.0.0

7 years ago

1.0.0

7 years ago