UNPKG

@ng-log/log4a

Version:

A powerful and customizable logging library for Angular application.

75 lines 8.74 kB
import { HttpHeaders } from '@angular/common/http'; import { catchError, throwError } from 'rxjs'; import { of } from 'rxjs/internal/observable/of'; import { AbstractLogger } from './log4a.model'; export class ConsoleAppender extends AbstractLogger { log(entry) { entry.buildLogString(); return of(true); } clear() { console.clear(); return of(true); } } export class LocalStorageAppender extends AbstractLogger { constructor() { super(); this.location = 'logging'; } log(entry) { let ret = false; let values; try { const location = localStorage.getItem(this.location) ?? ''; values = JSON.parse(location) || []; values.push(entry); localStorage.setItem(this.location, JSON.stringify(values)); ret = true; } catch (e) { console.error(e); } return of(ret); } clear() { localStorage.removeItem(this.location); return of(true); } } export class WebApiAppender extends AbstractLogger { constructor(http) { super(); this.http = http; this.location = 'api/logging'; } log(entry) { // let headers = new Headers({ 'Content-Type': 'Content-Type' }); const options = new HttpHeaders().set('Content-Type', 'application/json'); this.http .post(this.location, entry, { headers: options }).pipe(catchError((error, caught) => { console.error('There was an error!', error); // after handling error, return a new observable // that doesn't emit any values and completes return of(); })); return of(true); } clear() { // TODO: Call Web API to clear all values return of(true); } handleErrors(error) { const errors = []; let msg = ''; msg = 'Status: ' + error.status; msg += ' - Status Text: ' + error.statusText; if (error.json()) { msg += ' - Exception Message: ' + error.json().exceptionMessage; } errors.push(msg); console.error('An error occurred', errors); return throwError(errors); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hcHBlbmRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbG9nL2xvZzRhL3NyYy9saWIvY29yZS1hcHBlbmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBQ2pELEdBQUcsQ0FBQyxLQUFlO1FBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsS0FBSztRQUNILE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsY0FBYztJQUN0RDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFlO1FBQ2pCLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLE1BQWtCLENBQUM7UUFFdkIsSUFBSTtZQUNGLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzVELEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQjtRQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxjQUFjO0lBQ2hELFlBQW9CLElBQWdCO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWU7UUFDakIsaUVBQWlFO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxJQUFJO2FBQ04sSUFBSSxDQUFVLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxNQUF1QixFQUFtQixFQUFFO1lBQ2xJLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUMsaURBQWlEO1lBQ2pELDZDQUE2QztZQUM3QyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSztRQUNILHlDQUF5QztRQUN6QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQVU7UUFDN0IsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUViLEdBQUcsR0FBRyxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxHQUFHLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixHQUFHLElBQUksd0JBQXdCLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDO1NBQ2pFO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzL2ludGVybmFsL29ic2VydmFibGUvb2YnO1xuaW1wb3J0IHsgTG9nRW50cnkgfSBmcm9tICcuL2xvZzRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICcuL2xvZzRhLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbnNvbGVBcHBlbmRlciBleHRlbmRzIEFic3RyYWN0TG9nZ2VyIHtcbiAgbG9nKGVudHJ5OiBMb2dFbnRyeSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGVudHJ5LmJ1aWxkTG9nU3RyaW5nKCk7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG4gIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnNvbGUuY2xlYXIoKTtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZUFwcGVuZGVyIGV4dGVuZHMgQWJzdHJhY3RMb2dnZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9jYXRpb24gPSAnbG9nZ2luZyc7XG4gIH1cblxuICBsb2coZW50cnk6IExvZ0VudHJ5KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgbGV0IHJldCA9IGZhbHNlO1xuICAgIGxldCB2YWx1ZXM6IExvZ0VudHJ5W107XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgbG9jYXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2F0aW9uKSA/PyAnJztcbiAgICAgIHZhbHVlcyA9IEpTT04ucGFyc2UobG9jYXRpb24pIHx8IFtdO1xuICAgICAgdmFsdWVzLnB1c2goZW50cnkpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhdGlvbiwgSlNPTi5zdHJpbmdpZnkodmFsdWVzKSk7XG4gICAgICByZXQgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiBvZihyZXQpO1xuICB9XG5cbiAgY2xlYXIoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5sb2NhdGlvbik7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJBcGlBcHBlbmRlciBleHRlbmRzIEFic3RyYWN0TG9nZ2VyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvY2F0aW9uID0gJ2FwaS9sb2dnaW5nJztcbiAgfVxuXG4gIGxvZyhlbnRyeTogTG9nRW50cnkpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAvLyBsZXQgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdDb250ZW50LVR5cGUnIH0pO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgdGhpcy5odHRwXG4gICAgICAucG9zdDxib29sZWFuPih0aGlzLmxvY2F0aW9uLCBlbnRyeSwgeyBoZWFkZXJzOiBvcHRpb25zIH0pLnBpcGUoY2F0Y2hFcnJvcigoZXJyb3I6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPGFueT4pOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdUaGVyZSB3YXMgYW4gZXJyb3IhJywgZXJyb3IpO1xuICAgICAgICAvLyBhZnRlciBoYW5kbGluZyBlcnJvciwgcmV0dXJuIGEgbmV3IG9ic2VydmFibGUgXG4gICAgICAgIC8vIHRoYXQgZG9lc24ndCBlbWl0IGFueSB2YWx1ZXMgYW5kIGNvbXBsZXRlc1xuICAgICAgICByZXR1cm4gb2YoKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgY2xlYXIoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgLy8gVE9ETzogQ2FsbCBXZWIgQVBJIHRvIGNsZWFyIGFsbCB2YWx1ZXNcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9ycyhlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1zZyA9ICcnO1xuXG4gICAgbXNnID0gJ1N0YXR1czogJyArIGVycm9yLnN0YXR1cztcbiAgICBtc2cgKz0gJyAtIFN0YXR1cyBUZXh0OiAnICsgZXJyb3Iuc3RhdHVzVGV4dDtcbiAgICBpZiAoZXJyb3IuanNvbigpKSB7XG4gICAgICBtc2cgKz0gJyAtIEV4Y2VwdGlvbiBNZXNzYWdlOiAnICsgZXJyb3IuanNvbigpLmV4Y2VwdGlvbk1lc3NhZ2U7XG4gICAgfVxuICAgIGVycm9ycy5wdXNoKG1zZyk7XG5cbiAgICBjb25zb2xlLmVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCcsIGVycm9ycyk7XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcnMpO1xuICB9XG59XG4iXX0=