swn-logger v4.0.0
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 todebug.targets: Array of object. Defines log targets. Supported properties:name type mandatory* transport description type string ✓ * output destination: stdout,file,redis,datadogpath 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 hostcontains 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.
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.readyNotes
- 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.