https://github.com/perry-mitchell/gle
Global Log Engine: Environment-agnostic debugging & logging utility
https://github.com/perry-mitchell/gle
Last synced: about 1 year ago
JSON representation
Global Log Engine: Environment-agnostic debugging & logging utility
- Host: GitHub
- URL: https://github.com/perry-mitchell/gle
- Owner: perry-mitchell
- License: mit
- Created: 2021-05-20T14:54:47.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2022-07-05T09:40:14.000Z (about 4 years ago)
- Last Synced: 2025-05-30T00:48:22.647Z (about 1 year ago)
- Language: TypeScript
- Size: 771 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
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:
```typescript
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:
```typescript
localStorage.debug = "app:*";
```
_Later:_
```typescript
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:
```bash
DEBUG=app:* node index.js
```
_Later, after building:_
```typescript
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:*`