https://github.com/omrilotan/consigliere
π A simple to use JSON logger
https://github.com/omrilotan/consigliere
json log logger logging
Last synced: about 2 months ago
JSON representation
π A simple to use JSON logger
- Host: GitHub
- URL: https://github.com/omrilotan/consigliere
- Owner: omrilotan
- License: unlicense
- Created: 2021-08-16T15:49:12.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2026-04-21T10:16:47.000Z (2 months ago)
- Last Synced: 2026-04-21T10:49:17.243Z (2 months ago)
- Topics: json, log, logger, logging
- Language: TypeScript
- Homepage: https://npmjs.com/consigliere
- Size: 61.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
```js
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"}
```
| 
| -
## Create new Logger instances
```js
import { Logger } from "consigliere";
const logger = new Logger();
```
## Change minimal log level
Silence anything below a certain log level
```js
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 with a strong typescript signature
```js
import { Logger } from "consigliere";
const levels = ["low", "medium", "high"] as const;
const logger = new Logger({
levels,
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.high("Something worrying happened"); // Logs record
logger.error("Something must have gone horribly wrong"); // Typescript error - "error" is not a valid log level
```
## Define alternative logging devices
```ts
import { Logger } from "consigliere";
const logger = new Logger({
device: (json: string): boolean => navigator.sendBeacon("/log", json),
});
```
## Customise output with "parser"
```js
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
```js
const logger = new Logger({
fields: {
application: "my-app",
version: "0.0.1",
},
});
```
## Add dynamic fields to each record of the logger
```js
const start = Date.now();
const logger = new Logger({
dynamicFields: {
duration: () => Date.now() - start,
},
});
```