# node-trailer

> Logger built with middlewares.

Latest version **0.3.0** (published 2021-07-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install node-trailer
pnpm add node-trailer
yarn add node-trailer
bun add node-trailer
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.3.0 |
| Published | 2021-07-22 |
| First published | 2018-10-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 59.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | plylrnsdy |
| Maintainers | plylrnsdy |
| Keywords | logger, log |

## Links

- npm: https://www.npmjs.com/package/node-trailer
- Repository: https://github.com/plylrnsdy/node-trailer
- Homepage: https://github.com/plylrnsdy/node-trailer#README.md
- Issues: https://github.com/plylrnsdy/node-trailer/issues
- npm.io page: https://npm.io/package/node-trailer

## Dependencies (2)

- [chalk](https://npm.io/package/chalk.md) ^4.1.1
- [trough](https://npm.io/package/trough.md) ^1.0.5

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 0.3.0 (latest) — 2021-07-22
- 0.2.2 — 2021-05-17
- 0.1.3 — 2018-10-28
- 0.1.2 — 2018-10-28
- 0.1.1 — 2018-10-28
- 0.1.0 — 2018-10-28

## README

# node-trailer

[![npm](https://img.shields.io/npm/v/node-trailer.svg)](https://npmjs.org/package/node-trailer)

> A logger built with middleware, based on [trough](https://github.com/wooorm/trough).

* Create a logger without middlewares will use the default theme;
* Create a customize logger with middlewares.
  * There are 3 types middleware:
    * `Filter` decide what can be handle by next middleware;
    * `Appender` render different part of message as a log;
    * `Output` use appenders generating the log and send it to different place.

![Preview](./images/preview.png)

## Installation

Install using [npm](https://www.npmjs.org/):

```sh
npm i -P node-trailer
```

## Usage

Basic usage:

```javascript
import createLogger from "node-trailer"

const logger = createLogger({ level: 'info' })
logger.log('log message.') // No output
logger.info('info message.') //=> info message.
```

Customize:

```javascript
const pipeline = trough()
  // Filter
  .use(filter(({ options, level }: LoggerContext) =>
    levelWeight[options.level] <= levelWeight[level]
  ))
  // Appender
  .use(level(levelColor))
  .use(message())
  .use(error())
  // Output
  .use(colorConsole())

const logger = createLogger({}, pipeline)
```

## API Reference

- node-trailer
  - inner
    - [createLogger()](./docs/modules.md#createLogger)
    - :Middleware
      - [filter()](./docs/modules.md#filter)
      - :Appender
        - [date()](./docs/modules.md#date)
        - [level()](./docs/modules.md#level)
        - [message()](./docs/modules.md#message)
        - [position()](./docs/modules.md#position)
      - :Output
        - [rawConsole()](./docs/modules.md#rawConsole)
        - [colorConsole()](./docs/modules.md#colorConsole)
        - [logFile()](./docs/modules.md#logFile)
        - [jsonFile()](./docs/modules.md#jsonFile)

## Tests

Run tests using `npm test`.

## Contributing

Please submit all issues and pull requests to the [plylrnsdy/node-trailer](http://github.com/plylrnsdy/node-trailer) repository!

## Support

If you have any problem or suggestion please open an issue [here](https://github.com/plylrnsdy/node-trailer/issues).

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