# yc-logging-stream

> Stream and Pino transport for Yandex Cloud Logging

Latest version **1.0.1** (published 2022-04-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install yc-logging-stream
pnpm add yc-logging-stream
yarn add yc-logging-stream
bun add yc-logging-stream
```

## 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 | 1.0.1 |
| Published | 2022-04-11 |
| First published | 2022-04-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 8.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Maxim Krasnov |
| Maintainers | quickdevel |
| Keywords | yandex-cloud, logging, stream, pino, pino-transport |

## Links

- npm: https://www.npmjs.com/package/yc-logging-stream
- Repository: https://github.com/quickdevel/yc-logging-stream
- Homepage: https://github.com/quickdevel/yc-logging-stream#readme
- Issues: https://github.com/quickdevel/yc-logging-stream/issues
- npm.io page: https://npm.io/package/yc-logging-stream

## Dependencies (2)

- [pino-abstract-transport](https://npm.io/package/pino-abstract-transport.md) ^0.5.0
- [@yandex-cloud/nodejs-sdk](https://npm.io/package/@yandex-cloud/nodejs-sdk.md) ^2.0.0

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

- 1.0.1 (latest) — 2022-04-11

## README

# Yandex Cloud Logging Stream для Node.js

Данный модуль позволяет создать [Writable stream](https://nodejs.org/api/stream.html#writable-streams) для передачи данных в [Yandex Cloud Logging](https://cloud.yandex.ru/services/logging).

Так же модуль включает в себя transport для логгера [Pino](https://github.com/pinojs/pino).

## Установка

`npm install yc-logging-stream`

## Stream

Пример использования:
```javascript
const loggingStream = require('yc-logging-stream')

const stream = loggingStream.createWriteStream({
  auth: {
    oauthToken: 'OAUTH_TOKEN' // или iamToken: 'IAM_TOKEN'
  },
  destination: {
    logGroupId: 'LOG_GROUP_ID' // или folderId: 'FOLDER_ID'
  }
})

const run = async function () {
  stream.write({
    timestamp: new Date(),
    level: loggingStream.logLevels.INFO,
    message: 'Example message',
    jsonPayload: { foo: 'bar' }
  })

  await new Promise(resolve => setTimeout(resolve, 5000))
}

run()
```

## Pino

Пример использования:

```javascript
const http = require('http')
const pino = require('pino')
const pinoHttp = require('pino-http')

const transport = pino.transport({
  targets: [{
    target: 'yc-logging-stream/pino',
    options: {
      auth: {
        oauthToken: '' // или iamToken: ''
      },
      destination: {
        logGroupId: '' // или folderId: ''
      }
    }
  }]
})

const logger = pino(transport)
const httpLogger = pinoHttp({ logger })

const server = http.createServer((req, res) => {
  httpLogger(req, res)
  req.log.info('something else')
  res.end('hello world')
})

server.listen(3000)
```

## Структура options

Параметр `options` представляет собой объект с ключами `auth` и `destination`.

Параметр `auth` представляет собой объект с ключами `iamToken` или `oauthToken`, которые содержат соответствующие токены. Данный параметр передается в объект Session. Подробнее о данном параметре вы можете узнать [в документации к Node.js SDK](https://github.com/yandex-cloud/nodejs-sdk#getting-started).

Параметр `destination` представляет собой объект с ключами `logGroupId` (идентификатор лог-группы) или `folderId` (идентификатор каталога). Подробнее о данном параметре вы можете узнать [в документации к Yandex Cloud Logging](https://cloud.yandex.ru/docs/logging/concepts/log-group).

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