nestjs-loki-logger
Version:
A Nest Js module to push logs to grafana loki extending the built-in nest js Logger Class.
41 lines (38 loc) • 1.05 kB
text/typescript
import { DynamicModule, Global, Module } from '@nestjs/common';
import { LokiLogger } from './nest-loki.service';
import {
NestLokiModuleAsyncOptions,
NestLokiModuleOptions,
} from './typings/nest-loki';
()
({
providers: [LokiLogger],
})
export class LokiLoggerModule {
static forRoot(options: NestLokiModuleOptions): DynamicModule {
return {
module: LokiLoggerModule,
controllers: [],
providers: [LokiLogger.forRoot(options)],
};
}
static forRootAsync(options: NestLokiModuleAsyncOptions): DynamicModule {
return {
module: LokiLoggerModule,
imports: options.imports,
providers: [
{
provide: LokiLogger,
useFactory: async (...args: any[]): Promise<LokiLogger> => {
const _options: NestLokiModuleOptions = await options.useFactory(
...args,
);
return LokiLogger.forRoot(_options);
},
inject: options.inject || [],
},
],
exports: [LokiLogger],
};
}
}