@wmhilton/log
v1.1.0
Published
A console.log replacement
Downloads
2
Readme
log
This may not be everyone's cup o' tea, but this is the library I've written for console.log-style debugging.
Improvements over console.log
- Timestamps (with optional timezone configuration)
- Filename and line number of the caller
- CoffeeScript files have correct line numbers too (using
coffee-errors
)
- CoffeeScript files have correct line numbers too (using
- Colored log levels (using
chalk
) - Objects and arrays are pretty-printed using JSON.stringify instead of
[object Object]
- Error objects are pretty printed (using
pretty-error
)- Long stack traces included (using the
stack-trace
andclarify
)
- Long stack traces included (using the
- Smart truncation of long strings and arrays
- 'quiet' option to quickly turn logging off/on
- 'filename' option to write directly to a file instead of stdout
- EventEmitter interface so you can listen for log messages (say, to copy all messages to the Captain's log, or perform evasive manuvers on 'error' and 'fatal' messages)
Usage
// A single, global log object. Don't call with "new".
log = require('log')
// Calling setup is optional.
log.setup({
filename: String // optional, if specified writes to file instead of stdout (has precedence over `stdout`)
quiet: Bool // optional, default false, if true turns disables output but still triggers events
timezone: String // optional, defaults to "America/New_York"
colors: Bool // optional, default is chalk's autodetect behavior
stdout: Stream // optional, if specified log writes to a Writable Stream instead of process.stdout (since v1.1.0)
cutoffLength: Number // optional, default 250, the length to truncate long strings (since v1.1.0)
})
// Available log methods
log.log(args...)
log.debug(args...)
log.info(args...)
log.warn(args...)
log.err(args...)
log.fatal(args...)
// Event listener example(s)
log.on('err', function(e) {
// Print errors to stderr
process.stderr.write('ERROR: ' + e.message)
})
log.once('fatal', function(e) {
// Take 'fatal' errors literally
process.exit(1)
})
Example output
Screenshot of the colorized log levels, using Solarized terminal color scheme:
Example of a pretty error stack: