Complete Sentry integration (#1546)
This commit is contained in:
@ -15,53 +15,39 @@ export class SentryDriver implements LoggerService {
|
||||
});
|
||||
}
|
||||
|
||||
log(message: any, category: string) {
|
||||
Sentry.addBreadcrumb({
|
||||
message,
|
||||
level: 'log',
|
||||
data: {
|
||||
category,
|
||||
},
|
||||
});
|
||||
private logLevels = ['log', 'error', 'warning', 'debug', 'info'];
|
||||
|
||||
setLogLevels(levels: string[]) {
|
||||
this.logLevels = levels;
|
||||
}
|
||||
|
||||
error(message: any, category: string) {
|
||||
Sentry.addBreadcrumb({
|
||||
message,
|
||||
level: 'error',
|
||||
data: {
|
||||
category,
|
||||
},
|
||||
});
|
||||
log(message: any) {
|
||||
if (this.logLevels.includes('log')) {
|
||||
Sentry.captureMessage(message, { level: 'log' });
|
||||
}
|
||||
}
|
||||
|
||||
warn(message: any, category: string) {
|
||||
Sentry.addBreadcrumb({
|
||||
message,
|
||||
level: 'error',
|
||||
data: {
|
||||
category,
|
||||
},
|
||||
});
|
||||
error(message: any) {
|
||||
if (this.logLevels.includes('error')) {
|
||||
Sentry.captureMessage(message, { level: 'error' });
|
||||
}
|
||||
}
|
||||
|
||||
debug?(message: any, category: string) {
|
||||
Sentry.addBreadcrumb({
|
||||
message,
|
||||
level: 'debug',
|
||||
data: {
|
||||
category,
|
||||
},
|
||||
});
|
||||
warn(message: any) {
|
||||
if (this.logLevels.includes('warn')) {
|
||||
Sentry.captureMessage(message, { level: 'warning' });
|
||||
}
|
||||
}
|
||||
|
||||
verbose?(message: any, category: string) {
|
||||
Sentry.addBreadcrumb({
|
||||
message,
|
||||
level: 'info',
|
||||
data: {
|
||||
category,
|
||||
},
|
||||
});
|
||||
debug?(message: any) {
|
||||
if (this.logLevels.includes('debug')) {
|
||||
Sentry.captureMessage(message, { level: 'debug' });
|
||||
}
|
||||
}
|
||||
|
||||
verbose?(message: any) {
|
||||
if (this.logLevels.includes('verbose')) {
|
||||
Sentry.captureMessage(message, { level: 'info' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
import { LoggerType } from 'src/integrations/environment/interfaces/logger.interface';
|
||||
import { LoggerDriver } from 'src/integrations/environment/interfaces/logger.interface';
|
||||
|
||||
export interface SentryDriverFactoryOptions {
|
||||
type: LoggerType.Sentry;
|
||||
type: LoggerDriver.Sentry;
|
||||
options: {
|
||||
sentryDNS: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ConsoleDriverFactoryOptions {
|
||||
type: LoggerType.Console;
|
||||
type: LoggerDriver.Console;
|
||||
options: null;
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { DynamicModule, Global, ConsoleLogger } from '@nestjs/common';
|
||||
|
||||
import { LoggerType } from 'src/integrations/environment/interfaces/logger.interface';
|
||||
import { LoggerDriver } from 'src/integrations/environment/interfaces/logger.interface';
|
||||
|
||||
import { LoggerService } from './logger.service';
|
||||
import { LoggerModuleOptions } from './interfaces';
|
||||
@ -15,7 +15,7 @@ export class LoggerModule {
|
||||
const provider = {
|
||||
provide: LOGGER_DRIVER,
|
||||
useValue:
|
||||
options.type === LoggerType.Console
|
||||
options.type === LoggerDriver.Console
|
||||
? new ConsoleLogger()
|
||||
: new SentryDriver(options.options),
|
||||
};
|
||||
@ -32,7 +32,7 @@ export class LoggerModule {
|
||||
provide: LOGGER_DRIVER,
|
||||
useFactory: async (...args: any[]) => {
|
||||
const config = await options.useFactory(...args);
|
||||
return config?.type === LoggerType.Console
|
||||
return config?.type === LoggerDriver.Console
|
||||
? new ConsoleLogger()
|
||||
: new SentryDriver(config.options);
|
||||
},
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
import {
|
||||
Inject,
|
||||
Injectable,
|
||||
LoggerService as ConsoleLoggerService,
|
||||
LogLevel,
|
||||
LoggerService as LoggerServiceInterface,
|
||||
} from '@nestjs/common';
|
||||
|
||||
import { LOGGER_DRIVER } from './logger.constants';
|
||||
|
||||
@Injectable()
|
||||
export class LoggerService implements ConsoleLoggerService {
|
||||
constructor(@Inject(LOGGER_DRIVER) private driver: ConsoleLoggerService) {}
|
||||
export class LoggerService implements LoggerServiceInterface {
|
||||
constructor(@Inject(LOGGER_DRIVER) private driver: LoggerServiceInterface) {}
|
||||
|
||||
log(message: any, category: string, ...optionalParams: any[]) {
|
||||
this.driver.log.apply(this.driver, [message, category, ...optionalParams]);
|
||||
@ -41,4 +42,8 @@ export class LoggerService implements ConsoleLoggerService {
|
||||
...optionalParams,
|
||||
]);
|
||||
}
|
||||
|
||||
setLogLevels(levels: LogLevel[]) {
|
||||
this.driver.setLogLevels?.apply(this.driver, [levels]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user