kenny-loggins
HIGHWAY TO THE LOGGING ZONE
RIGHT INTO THE LOGGING ZONE
what
this is my logging module. it uses a combination of winston and @jfhbrook/logref to do the heavy lifting, supplies a few handy functions and mostly stays out of the way.
api
var loggins = require('kenny-loggins');
loggins.createLogger(opts)
this function returns a winston logger configured for cli logging to stdout
and configured to observe logs from the @jfhbrook/logref
implementation
of process.logging
. it's also configured to log unhandled exceptions and
unhandled rejections.
options:
-
level
- the level of the logger, defaults to 'info' -
logref.level
- the level at which to log process.logging events, defaults to 'debug' -
meta
- the winstondefaultMeta
argument, except I was able to make the name shorter
loggins.observe(logger, level)
this function takes a winston logger and a logging level and uses the
process.logging.observe
api as implemented in @jfhbrook/logref
to collect
logs from process.logging
and send them to winston. all logs from all
process.logging
loggers are emitted at the same level.
loggins.levels
this is an object containing a winston levels object.
kenny-loggins configures winston to use these levels:
- debug - stuff you usually don't want to see
- info - stuff you might want to mute in production
- warn - warnings
- error - errors
- fatal - errors that crash the process
loggins.priorities
this is the reverse lookup for loggins.levels
. while levels map from
a string name to an integer priority, this maps from priority back to level.
loggins.colors
this is an object containing a logform colors spec for the cli log formatter. its colors are similar to what we see in the standard winston cli logger, but it also includes a color for the "fatal" log level.
loggins.formatter
this is the winston formatter used by this library. right now it's the standard winston cli formatter with colors configured.
var minimistLog = require('kenny-loggins/minimist');
this module contains helpers for integrating minimist options parsing with kenny-loggins.
minimistLog.verbosity(opts, defaultLevel)
this function will take a minimist style opts object and a default level.
if minimist appears to set either the -v
or --verbose
flag it will return
a level one lower, and if not it will return the default level.
if the --log-level
flag is set in the opts object, that level will be used.
var syslog = require('kenny-loggins/syslog');
syslog.toSyslog(level)
this function will take a kenny-loggins level and return an appropriate syslog compatible priority number.
syslog.fromSyslog(priority)
this function will take a syslog priority number and return an appropriate kenny-loggins level.
development
this project uses tap
for testing and prettier
for formatting. I don't have
linting yet because my linting config and my prettier config don't agree rn.
Either way, you can run formatting with npm run format
and tests with
npm test
.
license
kenny-loggins is licensed under the apache license, v2.0.