Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/seanvelasco/winston-mqtt

MQTT transport for Winston
https://github.com/seanvelasco/winston-mqtt

logger logging mqtt winston winston-transport

Last synced: 2 months ago
JSON representation

MQTT transport for Winston

Awesome Lists containing this project

README

        

## Installation

```
npm install @seanvelasco/winston-mqtt
```

## Usage

```typescript
import winston from 'winston'
import MQTT from '@seanvelasco/winston-mqtt'

const mqttOptions = {
host: '127.0.0.1',
port: 1883,
clientId: '',
username: '',
password: '',
}

const logger = winston.createLogger({
level: 'info',
transports: [
new winston.transports.File({ filename: 'info.log', level: 'info' }),
new MQTT({ ...mqttOptions, topic: 'diagnostics/info', level: 'info' }),
]
})
```

## Features

### Include level, log message, and meta properties in the message as JSON payload

Pass `includeMeta: true` when instantiating the MQTT transport to include the level, message, and meta properties in the message as JSON payload.

## Limitations

- Creates new MQTT client for each transport
- Unable to reuse the same MQTT client for multiple transports
- Does not support multiple topics for the same transport
- No TLS support

## In the future
- TLS support
- Reuse MQTT client for multiple transports
- Add option for delayed publishing