https://github.com/alaricode/nestjs-rollbar
NestJS Rollbar package allows you to extend standard Logger to send errors directly to Rollbar
https://github.com/alaricode/nestjs-rollbar
Last synced: 3 months ago
JSON representation
NestJS Rollbar package allows you to extend standard Logger to send errors directly to Rollbar
- Host: GitHub
- URL: https://github.com/alaricode/nestjs-rollbar
- Owner: AlariCode
- Created: 2019-08-01T07:32:11.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-07-04T13:20:59.000Z (almost 2 years ago)
- Last Synced: 2025-04-07T18:21:12.297Z (3 months ago)
- Language: TypeScript
- Homepage: https://alariblog.ru/
- Size: 1.33 MB
- Stars: 21
- Watchers: 3
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Rollbar Module for NestJS

**More NestJS libs on [alariblog.ru](https://alariblog.ru)**
[](https://www.npmjs.com/package/nestjs-rollbar)
[](https://www.npmjs.com/package/nestjs-rollbar)
[](https://github.com/AlariCode/nestjs-rollbar/issues)
[](https://github.com/AlariCode/nestjs-rollbar/pulls)NestJS Rollbar package allows you to extend standard Logger to send errors directly to Rollbar. Usage if quite simple. Get Rollbar Token from your project page and install nestjs-rollbar package:
```bash
npm i nestjs-rollbar
```Then register module in your root app.module
```javascript
import { LoggerModule } from 'nestjs-rollbar';@Module({
imports: [
// ...
LoggerModule.forRoot({
accessToken: configService.get('ROLLBAR_TOKEN'),
environment: configService.get('ENVIRONMENT'),
}),
],
})
export class AppModule {}
````forRoot` method uses RollBar NodeJS configuration interface
Or, using `forRootAsync`:
```
import { ConfigModule, ConfigService } from '@nestjs/config';
import { LoggerModule } from 'nestjs-rollbar';@Module({
imports: [
// ...
LoggerModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) => ({
accessToken: configService.get('ROLLBAR_TOKEN'),
environment: configService.get('ENVIRONMENT'),
}),
}),
],
})
export class AppModule {}
`````` javascript
export interface Configuration {
accessToken?: string;
version?: string;
environment?: string;
codeVersion?: string;
code_version?: string;
scrubFields?: string[];
overwriteScrubFields?: boolean;
scrubHeaders?: string[];
logLevel?: Level;
reportLevel?: Level;
uncaughtErrorLevel?: Level;
endpoint?: string;
verbose?: boolean;
enabled?: boolean;
captureUncaught?: boolean;
captureUnhandledRejections?: boolean;
payload?: object;
maxItems?: number;
itemsPerMinute?: number;
ignoredMessages?: string[];
hostWhiteList?: string[];
hostBlackList?: string[];
filterTelemetry?: (e: TelemetryEvent) => boolean;
autoInstrument?: AutoInstrumentOptions;
maxTelemetryEvents?: number;
telemetryScrubber?: TelemetryScrubber;
includeItemsInTelemetry?: boolean;
scrubTelemetryInputs?: boolean;
sendConfig?: boolean;
captureEmail?: boolean;
captureUsername?: boolean;
captureIp?: boolean | "anonymize";
captureLambdaTimeouts?: boolean;
transform?: (data: object) => void;
checkIgnore?: (isUncaught: boolean, args: LogArgument[], item: object) => boolean;
onSendCallback?: (isUncaught: boolean, args: LogArgument[], item: object) => void;
}
```To use RollbarLogger in any service or controller just inject it in constructor:
```javascript
import { RollbarLogger } from 'nestjs-rollbar';constructor(
private readonly rollbarLogger: RollbarLogger
) {}
```To log an error to Rollbar just call `error()` method:
```javascript
try {
throw new Error('Test error');
} catch (error) {
this.rollbarLogger.error(error, 'myMethod');
}
```First parameter is an error object and the second - name of your method to show in logs.
## RollbarHandler decorator
If you want to automatically log error in controller or services method you can use RollbarHandler decorator.```javascript
@Injectable()
export class AppService {@RollbarHandler()
getHello() {
throw new Error('asda');
}
}
```It will catch all errors in method and send them directly to Rollbar and print them in console. If you want to customize error name, pass it to decorator:
```javascript
@RollbarHandler({
errorName: 'My error name',
})
```To rethrow error to another decorator:
```javascript
@RollbarHandler({
rethrow: true,
})
```