# node-json-logger

> Simply, output logs to STDOUT in JSON

Latest version **0.3.0** (published 2026-05-25) · MIT license · 0 weekly downloads

## Install

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

## Health

**Score 58/100 (C)** — status: active.

Positive: has types package; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.0 |
| Published | 2026-05-25 |
| First published | 2018-02-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/node-json-logger) |
| Module format | CommonJS |
| Node | >=22 |
| Dependencies | 1 |
| Unpacked size | 20.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 7 |
| Author | hidori |
| Maintainers | hidori |
| Keywords | logger, json |

## Links

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

## Dependencies (1)

- [moment-timezone](https://npm.io/package/moment-timezone.md) ^0.5.43

## 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

- 0.3.0 (latest) — 2026-05-25
- 0.2.1 — 2024-02-11
- 0.2.0 — 2023-12-16
- 0.1.3 — 2023-06-17
- 0.1.2 — 2023-06-02
- 0.1.1 — 2023-06-02
- 0.1.0 — 2023-02-01
- 0.0.19 — 2022-12-29
- 0.0.18 — 2022-06-25
- 0.0.17 — 2021-06-01
- 0.0.16 — 2021-05-18
- 0.0.15 — 2021-05-05
- 0.0.14 — 2021-05-05
- 0.0.13 — 2021-04-07
- 0.0.12 — 2021-01-05
- … 10 more at https://npm.io/package/node-json-logger/versions

## README

[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
[![Build Status: CI](https://github.com/hidori/node-json-logger/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/hidori/node-json-logger/actions/workflows/ci.yml?query=branch%3Amaster)
[![Maintainability](https://api.codeclimate.com/v1/badges/1dd1bfe212c8d70c9b8b/maintainability)](https://codeclimate.com/github/hidori/node-json-logger/maintainability)

# node-json-logger

Simply, output logs to STDOUT in JSON

## Install

```sh
npm i node-json-logger
```

## Usage

```js
const Logger = require('node-json-logger');
const logger = new Logger();

logger.info();
logger.info('message');
logger.info('message','message','message');
logger.info({ data: 'data' });
logger.info({ data1: 'data' }, { data2: 'data' });
logger.info('message', { data1: 'data' }, 'message', { data2: 'data' }, 'message');
```

Outputs:

```json
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info"}
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info","message":"message"}
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info","message":"message","message1":"message","message2":"message"}
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info","data":"data"}
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info","data1":"data","data2":"data"}
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info","message":"message","data1":"data","message1":"message","data2":"data","message2":"message"}
```

## API

```js
logger.xxx(message?, ...)
```

Note:

* xxx is one of the [Levels](#Levels)

Arguments:

* message: Specify a message as string or object.

## <a href="#Levels"></a>Levels

* trace
* debug
* info
* warn
* error
* fatal

## Configuration

### level

Specify output level. (optional, default is `debug`)

```js
const Logger = require('node-json-logger');
const logger = new Logger({ level: 'error'});

logger.trace('message');
logger.debug('message');
logger.info('message');
logger.warn('message');
logger.error('message');
logger.fatal('message');
```

Output:

```json
{"timestamp":"2001-03-14T01:00:00.000Z","level":"error","message":"message"}
{"timestamp":"2001-03-14T01:00:00.000Z","level":"fatal","message":"message"}
```

Level and output:

|                      | trace | debug | info | warn | error | fatal |
|:---------------------|:------|:------|:-----|:-----|:------|:------|
| `{ level: 'trace' }` | O     | O     | O    | O    | O     | O     |
| `{ level: 'debug' }` | -     | O     | O    | O    | O     | O     |
| `{ level: 'info' }`  | -     | -     | O    | O    | O     | O     |
| `{ level: 'warn' }`  | -     | -     | -    | O    | O     | O     |
| `{ level: 'error' }` | -     | -     | -    | -    | O     | O     |
| `{ level: 'fatal' }` | -     | -     | -    | -    | -     | O     |
| `{ level: 'none' }`  | -     | -     | -    | -    | -     | -     |

### loggerName

Specify the name of the logger. Useful when logging from different files.

```js
const Logger = require('node-json-logger');
const logger = new Logger({ loggerName: 'server/index.js' });

logger.info('message');
```

Output:

```json
{"timestamp":"2001-03-14T01:00:00.000Z","level":"info","loggerName":"server/index.js","message":"message"}
```

### timestamp

Specify enable or disable timestamp. (optional, default is true)

```js
const Logger = require('node-json-logger');
const logger = new Logger({ timestamp: false });

logger.info('message');
```

Output with disabled timestamp:

```json
{"level":"info","message":"message"}
```

### timezone

Specify locale timezone. (optional, default is UTC)

```js
const Logger = require('node-json-logger');
const logger = new Logger({timezone: 'America/Sao_Paulo'});

logger.info('message');
```

Output with specific timezone:

```json
{"timestamp":"2018-10-25T15:32:43.318Z","level":"info","message":"message"}
```

Same output with default timezone (UTC):

```json
{"timestamp":"2018-10-25T18:32:43.318Z","level":"info","message":"message"}
```

[Click here](https://momentjs.com/timezone/) to see the list with all available timezones.

## License

MIT

Copyright &copy;2018 Hiroaki SHIBUKI a.k.a. [hidori](https://github.com/hidori)

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