Logging utility built over Winston
Provides a simple interface to log to stdout, file or redis.
var mainLogger = require('swn-logger').create('my-project', config),
logger2 = require('swn-logger').create('subsystem')
mainLogger.info('Error')
Instanciates a logger for the given system.
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 todebug
. -
targets
: Array of object. Defines log targets. Supported properties:name type mandatory* transport description type string ✓ * output destination: stdout
,file
,redis
,datadog
path string ✓ file path to file. folder must exist. host string ✓ redis redis host. port string|number redis redis host port number. Can be ignored if host
contains both, separated by colon:
.key string ✓ redis key used to store events. service string datadog service name hostname string datadog logger host name secret string ✓ datadog AWS 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.
Logs an event with the appropriate level.
msg string
. Event message
data object
. Optional data, serialized and added to the event.
Logs an error.
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.
Returns a promise that resolves when all transports are initialized. Logging before that means losing logging for transports that are not ready.
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
- 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.