@ngworker/lumberjack
Version:
Lumberjack is a versatile Angular logging library, specifically designed to be extended and customized
55 lines • 7.46 kB
JavaScript
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==