@apstory/logger-angular
Version:
## Installation
128 lines (120 loc) • 5.92 kB
JavaScript
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