UNPKG

@apstory/logger-angular

Version:
128 lines (120 loc) 5.92 kB
import * as i0 from '@angular/core'; import { Inject, Injectable, NgModule } from '@angular/core'; import { ApplicationInsights } from '@microsoft/applicationinsights-web'; import { CommonModule } from '@angular/common'; class ApstoryLoggerService { instrumentationKey; loggingLevelConsole; ignoreClientErrors; appInsights; constructor(instrumentationKey, loggingLevelConsole = 0, ignoreClientErrors = false) { this.instrumentationKey = instrumentationKey; this.loggingLevelConsole = loggingLevelConsole; this.ignoreClientErrors = ignoreClientErrors; } async loadAppInsights() { if (!this.appInsights) { this.appInsights = new ApplicationInsights({ config: { instrumentationKey: this.instrumentationKey, loggingLevelConsole: this.loggingLevelConsole, } }); } } async logTrace(message, properties, severityLevel, measurements) { await this.loadAppInsights(); if (this.loggingLevelConsole > 0) { console.log(message); this.appInsights.trackTrace({ message, severityLevel, properties, measurements }); } } async logTraceSeverity(message, loggerSeverity) { await this.loadAppInsights(); if (this.loggingLevelConsole > 0) { console.log(message); this.logTrace(message, null, loggerSeverity); } } async logPageView(name, uri, measurements, properties, duration, isLoggedIn, pageType) { await this.loadAppInsights(); this.appInsights.trackPageView({ name, uri, measurements, properties, isLoggedIn, pageType }); this.logEvent(name, 'Initialize page'); } async logEvent(name, properties, measurements) { await this.loadAppInsights(); this.appInsights.trackEvent({ name, properties, measurements }); this.logTrace(name); } async logException(exception, handledAt, properties, measurements, severityLevel, id) { await this.loadAppInsights(); if (this.loggingLevelConsole > 0) { console.log(exception); } if (this.ignoreClientErrors && exception instanceof ClientError) { return; } this.appInsights.trackException({ exception, properties, measurements, severityLevel, id }); } async setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie) { await this.loadAppInsights(); this.appInsights.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie); } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerService, deps: [{ token: 'instrumentationKey' }, { token: 'loggingLevelConsole' }, { token: 'ignoreClientErrors' }], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: ['instrumentationKey'] }] }, { type: undefined, decorators: [{ type: Inject, args: ['loggingLevelConsole'] }] }, { type: undefined, decorators: [{ type: Inject, args: ['ignoreClientErrors'] }] }] }); class ApstoryLoggerModule { static forRoot(instrumentationKey, loggingLevelConsole, ignoreClientErrors = false) { return { ngModule: ApstoryLoggerModule, providers: [ { provide: 'instrumentationKey', useValue: instrumentationKey }, { provide: 'loggingLevelConsole', useValue: loggingLevelConsole }, { provide: 'ignoreClientErrors', useValue: ignoreClientErrors }, ] }; } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerModule, imports: [CommonModule] }); /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerModule, providers: [ApstoryLoggerService], imports: [CommonModule] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ApstoryLoggerModule, decorators: [{ type: NgModule, args: [{ imports: [CommonModule], providers: [ApstoryLoggerService] }] }] }); var LoggerSeverityEnum; (function (LoggerSeverityEnum) { LoggerSeverityEnum[LoggerSeverityEnum["Verbose"] = 0] = "Verbose"; LoggerSeverityEnum[LoggerSeverityEnum["Information"] = 1] = "Information"; LoggerSeverityEnum[LoggerSeverityEnum["Warning"] = 2] = "Warning"; LoggerSeverityEnum[LoggerSeverityEnum["Error"] = 3] = "Error"; LoggerSeverityEnum[LoggerSeverityEnum["Critical"] = 4] = "Critical"; })(LoggerSeverityEnum || (LoggerSeverityEnum = {})); class ClientError extends Error { } /* * Public API Surface of apstorylogger */ /** * Generated bundle index. Do not edit. */ export { ApstoryLoggerModule, ApstoryLoggerService, ClientError, LoggerSeverityEnum }; //# sourceMappingURL=apstory-logger-angular.mjs.map