# simple-json-logger

> simple json logger

Latest version **3.1.2** (published 2018-11-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install simple-json-logger
pnpm add simple-json-logger
yarn add simple-json-logger
bun add simple-json-logger
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.2 |
| Published | 2018-11-22 |
| First published | 2017-09-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 6.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | zhaoyao91 |
| Maintainers | zhaoyao91 |
| Keywords | json, logger |

## Links

- npm: https://www.npmjs.com/package/simple-json-logger
- Repository: https://github.com/zhaoyao91/simple-json-logger
- Homepage: https://github.com/zhaoyao91/simple-json-logger#readme
- Issues: https://github.com/zhaoyao91/simple-json-logger/issues
- npm.io page: https://npm.io/package/simple-json-logger

## Dependencies (2)

- [fast-safe-stringify](https://npm.io/package/fast-safe-stringify.md) ^2.0.6
- [lodash.defaultsdeep](https://npm.io/package/lodash.defaultsdeep.md) ^4.6.0

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 3.1.2 (latest) — 2018-11-22
- 3.1.1 — 2018-11-10
- 3.1.0 — 2018-11-10
- 3.0.1 — 2018-05-18
- 3.0.0 — 2018-05-16
- 2.1.2 — 2018-04-14
- 2.1.1 — 2018-04-07
- 2.1.0 — 2018-03-15
- 2.0.1 — 2018-03-14
- 2.0.0 — 2018-03-14
- 1.7.0 — 2018-03-14
- 1.6.0 — 2018-03-01
- 1.5.0 — 2018-03-01
- 1.4.0 — 2018-01-16
- 1.3.1 — 2018-01-07
- … 4 more at https://npm.io/package/simple-json-logger/versions

## README

# Simple JSON Logger

- Easy to use
- All are JSON

## Install

```
npm install --save simple-json-logger
```

## Usage

### Basic Usage

You can log any number strings, objects or errors in any order. Logger
will classify them and put them into right fields.

```
const logger = require('simple-json-logger')

logger.log('hello world')
// {"level": 30, "message": "hello world"}

logger.warn('some user is invalid', {name: 'Bob', age: 20})
// {"level": 40, "message": "some user is invalid", "detail": {"name": "Bob", "age": 20}}

logger.error('Something', new TypeError('invalid arg'), 'Wrong!!!')
// {"level": 50, messages:['Something', 'Wrong!!!'], "error": {"name": "TypeError", "message": "invalid arg", "stack": ...}}
```

### Set Options via Code

```
const logger = require('simple-json-logger')

logger.options.printLevel = 40

logger.info('ok') // won't be printed

logger.warn('warning!') // printed
```

### Set Options via Env

Set env variables:

```
export LOG_PRINT_LEVEL=40
export LOG_PRINT_PRETTY=true
```

Using default logger:

```
const logger = require('simple-json-logger')

logger.info('ok') // won't be printed

logger.warn('warning!') // printed with pretty
```

### Clone

```
const logger = require('simple-json-logger')

logger.options.printPretty = true

const logger2 = logger.clone()

logger2.options.logTimestamp = true

logger.info('hi') // pretty without timestamp

logger2.info('hello') // pretty with timestamp
```

## API

### Options

- (LOG_PRINT_LEVEL) printLevel = 30 - Only logs with level equal or greater than this will be printed
- (LOG_PRINT_PRETTY) printPretty = false - Print logs with pretty format
- (LOG_TIMESTAMP) logTimestamp = false - Add 'timestamp' to every logs
- (LOG_TRACE) logTrace = false - Add 'trace' to every logs. Only for development
- (LOG_POSITION) logPosition = false - Add 'position' to every logs. Only for development
- meta = null - Object that will be merged into every logs. User should be careful to not to override the builtin fields
- jsonStringifier - Help stringify the output object. See [default-json-stringifier.js](./default-json-stringifier.js)

### Levels

- verbose: 10
- debug: 20
- info: 30
- log: 30
- warn: 40
- error: 50
- fatal: 60

## License

MIT

---
_Source: https://npm.io/package/simple-json-logger · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
