Lightweight logger with an extensible configuration. Supports level based filtering and tagging. Filtering keeps your logs readable and uncluttered while tagging makes them searchable.
Features
- Small footprint, around 500 bytes with 0 dependencies
- Filter by level,
ERROR > WARN > INFO
- Filter by tag,
'security' | 'whatever'
- Log callback is extensible from console to cloud
- Style terminal output with chalk
- Send JSON to a cloud service like Loggly
- Log strings and objects to the console
- Combine any of the above based on env
- API mirrors
console.log
, logs objects and supports rest parameters - Works reliably with node or any browser through a bundler
- Includes TypeScript definitions so no need for external
@types
Install
npm install missionlog
Initialize
Tags typically refer to a subsystem or component like 'security'
or FooBar.name
.When missionlog is initialized, tags can be assigned a level. A message is logged when its level is greater than or equal to its tag
's assigned level.
// var log = require('missionlog').log;; /** * initialize missionlog * @param config JSON which assigns tags levels. An uninitialized, * tag's level defaults to INFO. * @param callback? handle logging whichever way works best for you */log;
Usage
; // the imported value "tag" is populated with YOUR tags!log; // but if you prefer simply use stringslog; // filtered since security's log level ERROR is greater than INFOlog; // also filtered since system's level is OFFlog; // updates tag levels on the flylog; // disable logging by clearing the callbacklog;
Advanced Usage
Create an instance with its own tags and callback.
; const myLog = ; myLog;