2.3.0 • Published 7 months ago

unklogger v2.3.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 months ago

unklogger

CI

A simple and colorful logger for Node.js.

Installation

npm install [--save] unklogger

Usage

import unklogger from "unklogger";

unklogger.log("What's up?");
// 2017-03-10 18:55:05 | What's up?

unklogger.success("Looking good!");
// 2017-03-10 18:55:15 | Looking good!

unklogger.error("Server #1", "OH NO!");
// 2017-03-10 19:00:00 | [Server #1] OH NO!

unklogger.warn("Response", "OK", { foo: "0", bar: "1" }, [0, 1, 2]);
// 2017-03-10 19:11:07 | [Response] OK { foo: "0", bar: "1" } [0, 1, 2]

unklogger.info(["Multiple", "Tags"], "I support multiple tags.");
// 2017-03-10 19:11:07 | [Multiple] [Tags] I support multiple tags.

Configuration

unklogger.$config = {
    quiet: false,     // Suppress output.
    colors: true,     // Enable colors.
    console: Console, // Override console streams.
};

Context

All output functions will return the context object as the first argument.

It contains the following properties:

  • $timestamp: The current timestamp, same as output.
  • $tags: All passed tags as an array.
  • $message: All other arguments combined, as a string.
  • $output: Text that was/will be logged to the console.
  • $arguments: All arguments, exactly as passed to unklogger.

Hooks

You can use the beforeWrite and afterWrite events to add hooks to perform any action. Multiple hooks can be bound to an event. Each is passed the current context.

unklogger.addHook("beforeWrite", (context) => {
    context.$output += " FOO";
});

unklogger.addHook("beforeWrite", (context) => {
    context.$output += " BAR";
});

unklogger.addHook("afterWrite", (context) => {
    axios.post("https://www.kream.io/logs", { output: context.$output });
});

// Outputs "ONE FOO BAR" and sends a POST request with the same output.
unklogger.info("ONE");

Extensions

Extensions are functions returned by unklogger, which you can chain after the first call.

unklogger.addExtension("send", (context, url) => {
    axios.post(url, { output: context.$output });
});

unklogger.info("GO!").send("https://www.kream.io/logs");

Tests

npm run test
2.3.0

7 months ago

2.2.0

1 year ago

1.5.0

2 years ago

1.4.0

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

1.3.1

3 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.2.1

4 years ago

1.1.0

4 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.5.0

6 years ago

0.4.5

6 years ago

0.4.4

6 years ago

0.4.3

6 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago