1.2.0 β€’ Published 19 days ago

consigliere v1.2.0

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
19 days ago

consigliere

🍝 A simple-to-use JSON logger

β€’ Quick to start β€’ Intuitive interface β€’ Rich with customisation.

Quick use logger

Zero configuration logger out-of-the box use

import { logger } from "consigliere";

logger.debug("Something just happened", { detail: "Something" });
// {"message":"Something just happened","detail":"Something","level":"debug"}

logger.error(new Error("Something must have gone horribly wrong"));
// {"message":"Something must have gone horribly wrong","stack":"Error: Something must have gone horribly wrong\n    at…","name":"Error","level":"error"}

| npm.io | -

Create new Logger instances

import { Logger } from "consigliere";

const logger = new Logger();

Change minimal log level

Silence anything below a certain log level

import { Logger } from "consigliere";

const logger = new Logger({ level: "warn" });
logger.info("I have a message to relay"); // nothing happens

logger.warn("Something worrying happened"); // logs record

Use your own set of log levels

import { Logger } from "consigliere";

const logger = new Logger({
  levels: ["low", "medium", "high"],
  level: "medium",
});
logger.low("I have something to show you"); // Does not log record
logger.medium("I have a message to relay"); // Logs record
logger.warn("Something worrying happened"); // Logs record

Define alternative logging devices

import { Logger } from "consigliere";

const logger = new Logger({
  device: (json: string): boolean => navigator.sendBeacon("/log", json),
});

Customise output with "parser"

import { Logger, NORMALISE_VALUES, NORMALISE, RAW } from "consigliere";

// JSON string
const logger = new Logger();
const logger = new Logger({ parser: NORMALISE });

// Output the raw object
const logger = new Logger({ parser: false });
const logger = new Logger({ parser: RAW });

// Stringify values of the record object
const logger = new Logger({ parser: NORMALISE_VALUES });

// Parse the record yourself
const logger = new Logger({
  parser: function ({ application, ...record }) {
    return JSON.stringify({
      application,
      level: this.level,
      records: [record],
    });
  },
});

Add constant fields to each record of the logger

const logger = new Logger({
  fields: {
    application: "my-app",
    version: "0.0.1",
  },
});

Add dynamic fields to each record of the logger

const start = Date.now();
const logger = new Logger({
  dynamicFields: {
    duration: () => Date.now() - start,
  },
});
1.2.0

19 days ago

1.1.0

3 months ago

1.0.1

3 months ago

1.0.1-rc-build.0

3 months ago

1.0.0

4 months ago

0.6.0

5 months ago

0.3.0

2 years ago

0.4.0-rc-4ec77b3

2 years ago

0.5.0

2 years ago

0.4.0-rc-405ceee

2 years ago

0.4.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.2

2 years ago

0.1.0

3 years ago

0.0.0

3 years ago