1.0.28 • Published 1 year ago

@treelab/logger-metrics-middleware v1.0.28

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

HTTP Log使用

Log中间件配置说明

{
  serviceName?: string        // 当前服务名
  prettyPrint?: boolean       // 是否以json方式输出, 默认false
  headers?: string[]          // 需要记录的header列表
  ...                         // 后续新增..
}

服务名配置说明

下面2种方法任选一个:

  1. 配置环境变量 SERVICE_NAME 为当前服务名,log中的serviceName会读env中 SERVICE_NAME 的值.
  1. 初始化时,传递serviceName参数 (暂不可用)
HTTP:

  app.use(ExpressHttpLoggerMiddleware({serviceName: 'svcName'}))

Grpc:

  @UseInterceptors(new GrpcLoggerMiddleware({ serviceName: 'svcName' }))

Express || Nestjs 使用

1.导入

import { ExpressHttpLoggerMiddleware } from '@treelab/logger-metrics-middleware'
import * as Prometheus from 'prom-client'

2. 使用中间件

  // 日志
  app.use(ExpressHttpLoggerMiddleware())

  // 指标
  app.use('/metrics', async (req, res) => {
    res.set('Content-Type', Prometheus.register.contentType)
    const end = await Prometheus.register.metrics()
    res.end(end)
  })
}

完整例子

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ExpressHttpLoggerMiddleware } from '@treelab/logger-metrics-middleware'
import * as Prometheus from 'prom-client'
import bodyParser = require('body-parser');

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.use(bodyParser.json());
  app.use(ExpressHttpLoggerMiddleware())

  app.use('/metrics', async (req, res) => {
    res.set('Content-Type', Prometheus.register.contentType)
    const end = await Prometheus.register.metrics()
    res.end(end)
  })

  await app.listen(3000);
}
bootstrap();

Koa 使用

1.导入

import { KoaHttpLoggerMiddleware } from '@treelab/logger-metrics-middleware/dist/http-logger'
import * as Prometheus from 'prom-client'

2. 使用中间件

  // 日志
  app.use(KoaHttpLoggerMiddleware())

  // 指标
  router.get('/metrics',async (ctx) => {
    ctx.header.set('Content-Type', Prometheus.register.contentType)
    const end = await Prometheus.register.metrics()
    ctx.body = end
  })
}

Grpc Log 使用(仅支持Nestjs)

导入

import { GrpcLoggerMiddleware } from '@treelab/logger-metrics-middleware';

使用

 // 在grpc Controller 上使用

@UseInterceptors(GrpcLoggerMiddleware)
@Controller()
export class GrpcController {
  constructor(){}

}
1.0.28

1 year ago

1.0.26

2 years ago

1.0.27

2 years ago

1.0.0

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.19

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.23

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9-beta-2

2 years ago

1.0.9-beta-1

2 years ago

1.0.9-beta

2 years ago

1.0.8-beta

2 years ago

1.0.7-beta

2 years ago

1.0.6-beta

2 years ago

1.0.5-beta

2 years ago

1.0.4-beta

2 years ago

1.0.3-beta

2 years ago

1.0.2-beta

2 years ago

1.0.1-beta-6

2 years ago

1.0.1-beta-5

2 years ago

1.0.1-beta-4

2 years ago

1.0.1-beta-3

2 years ago

1.0.1-beta-2

2 years ago

1.0.1-beta-1

2 years ago

1.0.1-beta

2 years ago

1.0.0-beta

2 years ago