Provides an injectable LogDNA client for logging in nestjs modules
This is a fork of @ntegral/nestjs-sentry
- Table Of Contents
- About
- Installation
- Getting Started
- Middleware
- Exception Filter
- License
- Acknowledgements
@bluepic/logdna-nestjs
implements a module, LogDNAModule
, which when imported into
your nestjs project provides a LogDNA client to any class that injects it. This
lets LogDNA be worked into your dependency injection workflow without having to
do any extra work outside of the initial setup.
npm install --save @bluepic/logdna-nestjs @logdna/logger
The simplest way to use @bluepic/logdna-nestjs
is to use LogDNAModule.forRootAsync
import { Module } from '@nestjs-common';
import { LogDNAModule } from '@bluepic/logdna-nestjs';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
LogDNAModule.forRootAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
ingestionKey: configService.get('LOGDNA_INGESTION_KEY'),
logDNAOptions: {
app: 'App Name',
env: process.env.NODE_ENV,
defaultLevel: 'info',
hostname: 'Hostname',
},
}),
inject: [ConfigService],
});
],
})
export class AppModule {}
You can then inject the LogDNA client into any of your injectables by using a custom decorator
import { Injectable } from '@nestjs/common';
import { LogDNAService, InjectLogDNA } from '@bluepic/logdna-nestjs';
@Injectable()
export class AppService {
constructor(@InjectLogDNA() private readonly logger: LogDNAService) {}
testLogger() {
this.logger.log('TEST');
}
}
You can instruct Nest to use the LogDNAService as the default logger:
import { LogDNAService } from '@bluepic/logdna-nestjs';
async function bootstrap() {
const app = await NestFactory.create(AppModule, { logger: false });
app.useLogger(LogDNAService.LogDNAServiceInstance());
await app.listen(3000);
}
bootstrap();
You can use the LogDNAhttpLogger Middleware to automatically log all incoming requests/outgoing responses
import { LogDNAhttpLogger } from '@bluepic/logdna-nestjs';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(LogDNAhttpLogger({
filter: (req, res) => res.statusCode == 500
}))
await app.listen(3000);
}
bootstrap();
You can use the LogDNAhttpExceptionLogger to automatically log exceptions
import { LogDNAhttpExceptionLogger } from '@bluepic/logdna-nestjs';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalFilters(new LogDNAhttpExceptionLogger({
generateReference: true
}));
await app.listen(3000);
}
bootstrap();
Distributed under the ISC License. See LICENSE
for more information.
- This is a fork of @ntegral/nestjs-sentry
- nestjs
- logdna
- @logdna/logger