gle
v1.0.3
Published
Global Log Engine: Environment-agnostic debugging & logging utility
Downloads
1,037
Maintainers
Readme
GLE
Global Log Engine: Environment-agnostic debugging & logging utility
GLE is a logging and debugging utility which allows for easy application/library debug log output when flagged by environment variables.
Inspired by debug
, but with additional support for more environments like:
- NodeJS
- Browsers
- React-Native
Installation
Run the following to install: npm install gle --save
.
Usage
Import one of the two following functions to start logging:
import { createLog, log } from "gle";
const logContext = createLog("my-app:core");
logContext("test log", "some info");
// Or
log("my-app:core", "test log:", "some info");
createLog
builds a log function with the context already defined. It is generally better for performance, as well. log
does everything on the fly, and requires a context in every call.
A context is a way to group logs together into some kind of logical "area" of your application or library.
To be able to view these logs, the correct environment variable must be specified.
Displaying logs in the browser
To enable logging for a context in the browser, you can use something like the following:
localStorage.debug = "app:*";
Later:
import { createLog, log } from "gle";
const logContext = createLog("app:websocket");
logContext("connecting socket");
Which will display a log like the following in the browser's console:
app:websocket connecting socket +0ms
Displaying logs in NodeJS
To enable logging for a context in a NodeJS app, set the DEBUG
environment variable:
DEBUG=app:* node index.js
Later, after building:
import { createLog, log } from "gle";
const logContext = createLog("app:db");
logContext("connecting database");
Log flags
The debug environment value can be made up of several different types of patterns:
- A single context:
my-app:some:context
- Multiple contexts:
app:core,app:net
- A Negated context:
-app:test
- A combination:
-app:test,app:init
- Wild cards:
app:*
- Multiple:
app:*,system:*
- Anywhere:
app:test,system:*:core
- Negated:
-system:*
- Multiple: