___
__ /\_ \
___ /\_\ ___ ___ __ __ ___ \//\ \ ___ __ __ __ _ __
/'___\/\ \ /' _ `\ / __`\/\ \/\ \ / __`\ _______\ \ \ / __`\ /'_ `\ /'_ `\ /'__`\/\`'__\
/\ \__/\ \ \/\ \/\ \/\ \L\ \ \ \_/ |/\ \L\ \/\______\\_\ \_/\ \L\ \/\ \L\ \/\ \L\ \/\ __/\ \ \/
\ \____\\ \_\ \_\ \_\ \____/\ \___/ \ \____/\/______//\____\ \____/\ \____ \ \____ \ \____\\ \_\
\/____/ \/_/\/_/\/_/\/___/ \/__/ \/___/ \/____/\/___/ \/___L\ \/___L\ \/____/ \/_/
/\____/ /\____/
\_/__/ \_/__/
cinovo-logger
cinovo-logger is an async logger for Node.js with multiple endpoints.
Getting started
At first you must install and require the logger.
npm install cinovo-logger
Next you must require the module
var logger = ;
Append an endpoint
There are some endpoints available:
- cinovo-logger-console
- cinovo-logger-file
- cinovo-logger-syslog
- cinovo-logger-aws
- cinovo-logger-notificationcenter
- cinovo-logger-loggly
You could also write your own endpoint (see Custom Endpoint).
If you wish to log to console just:
npm install cinovo-logger-console
In your JavaScript code append the endpoint.
logger;
If you wish to log to syslog just:
npm install cinovo-logger-syslog
In your JavaScript code append the endpoint.
logger;
You could also log to file, AWS (S3, SQS, SNS), Mac OS X Notification Center or Loggly
Log something
logger;logger;logger;logger;logger;
Done
Now you can log to multiple endpoints.
Integrate
You are likely to use some other npms so we tried to integrate cinovo-logger with some popular npms by providing wrapprs:
API
debug, info, error, critical([origin], message, [metadata], [callback])
Depending on the level you want to log choose one of the four methods.
origin
: String to indicate where the log come from, e. g. the name of the script (optional)message
: String to tell what happenedmetadata
: String, Number, Boolean, Array or Object to tell you more about the situation (optional)callback
: Function(err) Fired after log was processed by all endpoints (optional)err
: Error (optional)
Examples:
logger;logger;logger;logger;
exception([origin], message, error, [callback])
If you want to log an Error there is a special method exception
which logs as an error
origin
: String to indicate where the log come from, e. g. the name of the script (optional)message
: String to tell what happenederror
: Errorcallback
: Function(err) Fired after log was processed by all endpoints (optional)err
: Error (optional)
Examples:
logger;logger;logger;
Log
The log object contains the following fields:
{
level: String["debug", "info", "error", "critical"]
date: Date
pid: Number
hostname: String
origin: String to indicate where the log come from, e. g. the name of the script (optional)
message: String to tell what happened
metadata: String, Number, Boolean, Array or Object to tell you more about the situation (optional)
fullOrigin: {
file: String of the file name,
line: Number of the line,
fn: String of the invoked function name
} (optional)
}
EventEmitter
The cinovo-logger is also an EventEmitter.
on, addListener(event, listener)
Adds a listener to the end of the listeners array for the specified event.
event
: Stringlistener
: Function - see Events for signature
once(event, listener)
Adds a one time listener for the event. This listener is invoked only the next time the level is fired, after which it is removed.
event
: Stringlistener
: Function - see Events for signature
removeListener(event, listener)
Remove a listener from the listener array for the specified event.
event
: Stringlistener
: Function - see Events for signature
removeAllListeners([event])
Removes all listeners, or those of the specified event.
event
: String (optional)
append(endpoint)
endpoint
: must extend Endpoint see Custom Endpoint
remove(endpoint, callback)
endpoint
: must extend Endpoint see Custom Endpointcallback
: Function(err)err
: Error
stop(callback)
Stop all endpoints to avoid data loss.
callback
: Function(err)err
: Error
fullOrigin()
Activates fullOrigin
output in log
. Locates the caller of an log function debug
, info
, error
, exception
, critical
by:
{
file: String of the file name,
line: Number of the line,
fn: String of the invoked function name
}
Events
level_debug(log)
On debug
log.
log
: Log
level_info(log)
On info
log.
log
: Log
level_error(log)
On error
log.
log
: Log
level_critical(log)
On critical
log.
log
: Log
error(err)
If you use on of the log methods debug
, info
, error
, exception
, critical
without the optional callback
and an Error occurs it is emitted.
err
: Error
endpoint_error(endpoint, err)
If an endpoint.log() returned an error or an error was emitted by an endpoint.
endpoint
: Endpointerr
: Error
Advanced Stuff
Multiple logger instances
From time to time it makes sense to have more than one logger instance.
var myLogger = ; myLogger; myLogger;
Configuration
You can configure the logger during creation or after creation.
during creation:
var cfg = fullOrigin: false filter: "*": true ;var myLogger = ;
after creation:
var logger = ;// do somethingloggercfgfullOrigin = true;
Options
There are several options available:
fullOrigin
Boolean
- Activates fullOrigin
output in log
. (default: false
)
Examples:
var cfg = fullOrigin: true;
filter
Object
- Allow or block log
from origin
and/or level
. (default: {"*": true}
)
Examples:
`````javascriptvar cfg = { filter: { "*": false, // block everything (required) "*/critical": true, // but allow critical
level"myorigin/*": true, // and allow everything from
originmyorigin "yourorigin/debug": true, // and allow everything from
originyourorigin and
level` debug
}
};
### Custom Endpoint
Visit [cinovo-logger-lib](https://github.com/cinovo/node-logger-lib).