0.0.18 • Published 1 year ago

@zebrains/nest-loki-logger v0.0.18

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
1 year ago

@zebrains/nest-loki-logger

nest-loki-logger - это middleware для NestJS, который позволяет логировать запросы и ответы в Loki. Этот пакет также предоставляет сервис для логирования кастомных событий.

Установка

Установите пакет через npm:

npm install @zebrains/nest-loki-logger

Или через yarn:

yarn add@zebrains/nest-loki-logger

Использование

Подключение Middleware

Импортируйте LokiService и LoggingMiddleware в ваш модуль:

import { Module, MiddlewareConsumer, NestModule } from "@nestjs/common";
import { LokiService } from "loki-logger-middleware";
import { LoggingMiddleware } from "loki-logger-middleware";

@Module({
  providers: [LokiService],
})
export class AppModule implements NestModule {
  constructor(private readonly lokiService: LokiService) {}

  configure(consumer: MiddlewareConsumer) {
    consumer.apply(LoggingMiddleware).forRoutes("*");
  }
}

Настройте параметры LokiService в вашем модуле:

import { Module } from "@nestjs/common";
import { LokiService } from "loki-logger-middleware";

@Module({
  imports: [],
  providers: [
    {
      provide: LokiService,
      useFactory: () => {
        return LokiService.forRoot({
          lokiUrl: "http://localhost:3100",
          lokiUsername: "your-username",
          lokiPassword: "your-password",
          labels: { app: "my-nest-app" },
          logToConsole: true,
          gzip: true,
        });
      },
    },
  ],
  exports: [LokiService],
})
export class AppModule {}

Логирование кастомных событий

Вы также можете использовать LokiService для логирования кастомных событий. Для этого импортируйте и используйте LokiService в вашем сервисе или контроллере:

import { Controller, Get, Post, Body } from "@nestjs/common";
import { LokiService } from "loki-logger-middleware";

@Controller("example")
export class ExampleController {
  constructor(private readonly lokiService: LokiService) {}

  @Get()
  getExample() {
    this.lokiService.log("This is a GET request log", "ExampleController", {
      customLabel: "customValue",
    });
    return "GET request logged";
  }

  @Post()
  postExample(@Body() body: any) {
    this.lokiService.log("This is a POST request log", "ExampleController", {
      customLabel: "customValue",
    });
    return "POST request logged";
  }
}

Конфигурация LokiService

Параметры, которые можно передать в LokiService.forRoot:

  • lokiUrl (string): URL вашего Loki сервера.
  • lokiUsername (string): Имя пользователя для аутентификации.
  • lokiPassword (string): Пароль для аутентификации.
  • labels (object): Дополнительные метки, которые будут добавлены к каждому логу.
  • logToConsole (boolean): Логировать ли сообщения в консоль.
  • gzip (boolean): Сжимать ли логи перед отправкой в Loki.

Пример использования

import { Module, MiddlewareConsumer, NestModule } from "@nestjs/common";
import { LokiService } from "loki-logger-middleware";
import { LoggingMiddleware } from "loki-logger-middleware";
import { ExampleController } from "./example.controller";

@Module({
  controllers: [ExampleController],
  providers: [
    {
      provide: LokiService,
      useFactory: () => {
        return LokiService.forRoot({
          lokiUrl: "http://localhost:3100",
          lokiUsername: "your-username",
          lokiPassword: "your-password",
          labels: { app: "my-nest-app" },
          logToConsole: true,
          gzip: true,
        });
      },
    },
  ],
})
export class AppModule implements NestModule {
  constructor(private readonly lokiService: LokiService) {}

  configure(consumer: MiddlewareConsumer) {
    consumer.apply(LoggingMiddleware).forRoutes("*");
  }
}
import { Controller, Get, Post, Body } from "@nestjs/common";
import { LokiService } from "loki-logger-middleware";

@Controller("example")
export class ExampleController {
  constructor(private readonly lokiService: LokiService) {}

  @Get()
  getExample() {
    this.lokiService.log("This is a GET request log", "ExampleController", {
      customLabel: "customValue",
    });
    return "GET request logged";
  }

  @Post()
  postExample(@Body() body: any) {
    this.lokiService.log("This is a POST request log", "ExampleController", {
      customLabel: "customValue",
    });
    return "POST request logged";
  }
}

С помощью этого пакета вы можете легко добавить логирование запросов и ответов в Loki, а также логировать кастомные события из ваших сервисов и контроллеров.

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago