UNPKG

@ngworker/lumberjack

Version:

Lumberjack is a versatile Angular logging library, specifically designed to be extended and customized

55 lines 7.46 kB
import { inject, Injectable } from '@angular/core'; import { lumberjackConfigToken } from '../configuration/lumberjack-config.token'; import { LumberjackTimeService } from '../time/lumberjack-time.service'; import { lumberjackFormatLog } from './lumberjack-format-log'; import * as i0 from "@angular/core"; export class LumberjackLogFormatter { #config = inject(lumberjackConfigToken); #time = inject(LumberjackTimeService); formatLog(log) { const { format } = this.#config; let result; try { result = { log, formattedLog: format(log), }; } catch (formattingError) { const formattingErrorLog = this.#createFormattingErrorLog(formattingError, log); const formattedFormattingError = this.#formatFormattingError(formattingErrorLog); result = { log: formattingErrorLog, formattedLog: formattedFormattingError, }; } return result; } #createFormattingErrorLog(formatError, log) { const formattingErrorMessage = formatError.message ?? String(formatError); return { scope: 'LumberjackLogFormattingError', createdAt: this.#time.getUnixEpochTicks(), level: 'error', message: `Could not format message "${log.message}". Error: "${formattingErrorMessage}"`, payload: undefined, }; } #formatFormattingError(errorEntry) { const { format } = this.#config; let errorMessage = ''; try { errorMessage = format(errorEntry); } catch { errorMessage = lumberjackFormatLog(errorEntry); } return errorMessage; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LumberjackLogFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LumberjackLogFormatter }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LumberjackLogFormatter, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVtYmVyamFjay1sb2ctZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3dvcmtlci9sdW1iZXJqYWNrL3NyYy9saWIvZm9ybWF0dGluZy9sdW1iZXJqYWNrLWxvZy1mb3JtYXR0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUlqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixPQUFPLEdBQUcsTUFBTSxDQUE2QixxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BFLEtBQUssR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUvQyxTQUFTLENBQUMsR0FBNEI7UUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxNQUE4QyxDQUFDO1FBRW5ELElBQUksQ0FBQztZQUNILE1BQU0sR0FBRztnQkFDUCxHQUFHO2dCQUNILFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQzFCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxlQUFlLEVBQUUsQ0FBQztZQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEYsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUVqRixNQUFNLEdBQUc7Z0JBQ1AsR0FBRyxFQUFFLGtCQUFrQjtnQkFDdkIsWUFBWSxFQUFFLHdCQUF3QjthQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxXQUFvQixFQUFFLEdBQTRCO1FBQzFFLE1BQU0sc0JBQXNCLEdBQUksV0FBcUIsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXJGLE9BQU87WUFDTCxLQUFLLEVBQUUsOEJBQThCO1lBQ3JDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pDLEtBQUssRUFBRSxPQUFPO1lBQ2QsT0FBTyxFQUFFLDZCQUE2QixHQUFHLENBQUMsT0FBTyxjQUFjLHNCQUFzQixHQUFHO1lBQ3hGLE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBbUM7UUFDeEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQztZQUNILFlBQVksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzt1R0FqRFUsc0JBQXNCOzJHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgbHVtYmVyamFja0NvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9sdW1iZXJqYWNrLWNvbmZpZy50b2tlbic7XG5pbXBvcnQgeyBMdW1iZXJqYWNrQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9sdW1iZXJqYWNrLmNvbmZpZyc7XG5pbXBvcnQgeyBMdW1iZXJqYWNrTG9nUGF5bG9hZCB9IGZyb20gJy4uL2xvZ3MvbHVtYmVyamFjay1sb2ctcGF5bG9hZCc7XG5pbXBvcnQgeyBMdW1iZXJqYWNrTG9nIH0gZnJvbSAnLi4vbG9ncy9sdW1iZXJqYWNrLmxvZyc7XG5pbXBvcnQgeyBMdW1iZXJqYWNrVGltZVNlcnZpY2UgfSBmcm9tICcuLi90aW1lL2x1bWJlcmphY2stdGltZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgbHVtYmVyamFja0Zvcm1hdExvZyB9IGZyb20gJy4vbHVtYmVyamFjay1mb3JtYXQtbG9nJztcbmltcG9ydCB7IEx1bWJlcmphY2tMb2dGb3JtYXR0ZXJSZXN1bHQgfSBmcm9tICcuL2x1bWJlcmphY2stbG9nLWZvcm1hdHRlci1yZXN1bHQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTHVtYmVyamFja0xvZ0Zvcm1hdHRlcjxUUGF5bG9hZCBleHRlbmRzIEx1bWJlcmphY2tMb2dQYXlsb2FkIHwgdm9pZCA9IHZvaWQ+IHtcbiAgcmVhZG9ubHkgI2NvbmZpZyA9IGluamVjdDxMdW1iZXJqYWNrQ29uZmlnPFRQYXlsb2FkPj4obHVtYmVyamFja0NvbmZpZ1Rva2VuKTtcbiAgcmVhZG9ubHkgI3RpbWUgPSBpbmplY3QoTHVtYmVyamFja1RpbWVTZXJ2aWNlKTtcblxuICBmb3JtYXRMb2cobG9nOiBMdW1iZXJqYWNrTG9nPFRQYXlsb2FkPik6IEx1bWJlcmphY2tMb2dGb3JtYXR0ZXJSZXN1bHQ8VFBheWxvYWQ+IHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gdGhpcy4jY29uZmlnO1xuICAgIGxldCByZXN1bHQ6IEx1bWJlcmphY2tMb2dGb3JtYXR0ZXJSZXN1bHQ8VFBheWxvYWQ+O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgbG9nLFxuICAgICAgICBmb3JtYXR0ZWRMb2c6IGZvcm1hdChsb2cpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChmb3JtYXR0aW5nRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRpbmdFcnJvckxvZyA9IHRoaXMuI2NyZWF0ZUZvcm1hdHRpbmdFcnJvckxvZyhmb3JtYXR0aW5nRXJyb3IsIGxvZyk7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRGb3JtYXR0aW5nRXJyb3IgPSB0aGlzLiNmb3JtYXRGb3JtYXR0aW5nRXJyb3IoZm9ybWF0dGluZ0Vycm9yTG9nKTtcblxuICAgICAgcmVzdWx0ID0ge1xuICAgICAgICBsb2c6IGZvcm1hdHRpbmdFcnJvckxvZyxcbiAgICAgICAgZm9ybWF0dGVkTG9nOiBmb3JtYXR0ZWRGb3JtYXR0aW5nRXJyb3IsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAjY3JlYXRlRm9ybWF0dGluZ0Vycm9yTG9nKGZvcm1hdEVycm9yOiB1bmtub3duLCBsb2c6IEx1bWJlcmphY2tMb2c8VFBheWxvYWQ+KTogTHVtYmVyamFja0xvZzxUUGF5bG9hZD4ge1xuICAgIGNvbnN0IGZvcm1hdHRpbmdFcnJvck1lc3NhZ2UgPSAoZm9ybWF0RXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgPz8gU3RyaW5nKGZvcm1hdEVycm9yKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzY29wZTogJ0x1bWJlcmphY2tMb2dGb3JtYXR0aW5nRXJyb3InLFxuICAgICAgY3JlYXRlZEF0OiB0aGlzLiN0aW1lLmdldFVuaXhFcG9jaFRpY2tzKCksXG4gICAgICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6IGBDb3VsZCBub3QgZm9ybWF0IG1lc3NhZ2UgXCIke2xvZy5tZXNzYWdlfVwiLiBFcnJvcjogXCIke2Zvcm1hdHRpbmdFcnJvck1lc3NhZ2V9XCJgLFxuICAgICAgcGF5bG9hZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAjZm9ybWF0Rm9ybWF0dGluZ0Vycm9yKGVycm9yRW50cnk6IEx1bWJlcmphY2tMb2c8VFBheWxvYWQ+KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGZvcm1hdCB9ID0gdGhpcy4jY29uZmlnO1xuICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnJztcblxuICAgIHRyeSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXQoZXJyb3JFbnRyeSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBsdW1iZXJqYWNrRm9ybWF0TG9nKGVycm9yRW50cnkpO1xuICAgIH1cblxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiJdfQ==