logsaw
logsaw is a simple JSON file-based logger for node.
Installation
npm
npm install logsaw
GitHub
npm install https://github.com/martinrue/logsaw/tarball/master
Configuration
To change the default config, call configure
:
var logger = ; logger;
Options
Key | Default Value | Description |
---|---|---|
console | true if not production | display logs on console |
verbose | false | display complete log object on console |
debug | false | save debug logs to log file |
generators | false | allow log functions to be yielded from ES6 generator |
directory | process.cwd() + 'logs' |
the directory to write log files to (created if new) |
API
logsaw exposes 4 functions: debug()
, info()
, warn()
and error()
. All functions take a single object argument which may contain message
, context
and data
fields.
You may specify a type
field in calls to info()
to create custom log types. Calls to debug()
are saved to the log file only if { debug: true }
is set in config.
Example
var logger = ; // creates a debug log (saved to the log file if debug is set to true in config)logger; // creates an info loglogger; // creates a custom user-signup loglogger; // creates a warning log with a contextlogger; // creates an error log with associated err datalogger;
Callback
If { generators: false }
is set (default), an optional callback can be supplied as the last argument to the 4 logging functions to be notified once the underlying write operation completes.
Generators
If { generators: true }
is set, you can optionally yield
any of the 4 log functions from within Co, or similar.
Logs
Filename
Log files are created based on the current date (e.g. 2014-07-22.log
) and written to the config directory
.
Format
Each log file consists of a line-delimited JSON entry of the form:
"type":"error" "message":"something went wrong" "time":"2014-07-22T19:30:00.630Z" "data":"{ err: 'error info' }" "context":"user@host.com"
Context
The context
field of a log entry is intended to hold a scalar value that can be used to group sets of logs together.
You could set it to a user's email address to associate a series of logs with a user, you could set it to a request ID to associate a series of logs with an HTTP request, or you could set it to some other meaningful value.
License
MIT