@tangential/core
Version:
Core types and support code for Tangential
93 lines • 10.4 kB
JavaScript
import { Injectable, Optional } from '@angular/core';
import { LogMessage } from './log-message';
import * as i0 from "@angular/core";
const spaces = ' ';
/**
*
*
*/
export const LogLevels = {
NONE: 'NONE',
fatal: 'fatal',
error: 'error',
warn: 'warn',
info: 'info',
debug: 'debug',
trace: 'trace'
};
export class LoggerConfiguration {
constructor() {
this.contextAsStringWidth = 30;
this.includeFullContext = false;
/**
* For temporarily shutting of logging, use NONE, but if you are shutting off logging for production, or because you're using
* another logging system, you should Provide a simpler logging class in your module configuration.
* @type {LogLevel}
*/
this.logLevel = 'trace';
}
}
const emptyFn = function (...x) { };
export class Logger {
constructor(configuration) {
this.config = new LoggerConfiguration();
this.config = configuration || this.config;
this.applyLevel();
}
trace(context, ...message) {
this.log(new LogMessage('trace', context, ...message));
}
debug(context, ...message) {
this.log(new LogMessage('debug', context, ...message));
}
info(context, ...message) {
this.log(new LogMessage('info', context, ...message));
}
warn(context, ...message) {
this.log(new LogMessage('warn', context, ...message));
}
error(context, ...message) {
this.log(new LogMessage('error', context, ...message));
}
fatal(context, ...message) {
this.log(new LogMessage('fatal', context, ...message));
}
applyLevel() {
console.log('Logger', 'applyLevel', this.config);
/**
* This keeps noise off the system bus when running in production mode or with logging off.
* Yes, it's supposed to fall through, despite the evil nature.
*/
// @ts-ignore
// noinspection FallThroughInSwitchStatementJS
switch (this.config.logLevel) {
// @ts-ignore
case LogLevels.NONE:
this.fatal = emptyFn;
// @ts-ignore
case LogLevels.fatal:
this.error = emptyFn;
// @ts-ignore
case LogLevels.error:
this.warn = emptyFn;
// @ts-ignore
case LogLevels.warn:
this.info = emptyFn;
// @ts-ignore
case LogLevels.info:
this.debug = emptyFn;
// @ts-ignore
case LogLevels.debug:
this.trace = emptyFn;
// @ts-ignore
}
}
}
Logger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: Logger, deps: [{ token: LoggerConfiguration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
Logger.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: Logger });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: Logger, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: LoggerConfiguration, decorators: [{
type: Optional
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ2VudGlhbC9jb3JlL3NyYy9saWIvbWVzc2FnZS1idXMvbG9nZ2luZy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQTs7QUFFeEMsTUFBTSxNQUFNLEdBQUcsc0dBQXNHLENBQUE7QUFJckg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBYSxNQUFNO0lBQ3ZCLEtBQUssRUFBWSxPQUFPO0lBQ3hCLEtBQUssRUFBWSxPQUFPO0lBQ3hCLElBQUksRUFBYSxNQUFNO0lBQ3ZCLElBQUksRUFBYSxNQUFNO0lBQ3ZCLEtBQUssRUFBWSxPQUFPO0lBQ3hCLEtBQUssRUFBWSxPQUFPO0NBQ3pCLENBQUE7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBQWhDO1FBQ0UseUJBQW9CLEdBQVcsRUFBRSxDQUFBO1FBQ2pDLHVCQUFrQixHQUFZLEtBQUssQ0FBQTtRQUNuQzs7OztXQUlHO1FBQ0gsYUFBUSxHQUFhLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVLEdBQUcsQ0FBUSxJQUFRLENBQUMsQ0FBQTtBQUk5QyxNQUFNLE9BQWdCLE1BQU07SUFJMUIsWUFBa0MsYUFBbUM7UUFGckUsV0FBTSxHQUF3QixJQUFJLG1CQUFtQixFQUFFLENBQUE7UUFHckQsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUMxQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUlELEtBQUssQ0FBQyxPQUFZLEVBQUUsR0FBRyxPQUFhO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsR0FBRyxPQUFhO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFZLEVBQUUsR0FBRyxPQUFhO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFZLEVBQUUsR0FBRyxPQUFhO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsR0FBRyxPQUFhO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFZLEVBQUUsR0FBRyxPQUFhO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUdPLFVBQVU7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoRDs7O1dBR0c7UUFDSCxhQUFhO1FBQ2IsOENBQThDO1FBQzlDLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDNUIsYUFBYTtZQUNiLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO1lBQ3RCLGFBQWE7WUFDYixLQUFLLFNBQVMsQ0FBQyxLQUFLO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQTtZQUN0QixhQUFhO1lBQ2IsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUE7WUFDckIsYUFBYTtZQUNiLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFBO1lBQ3JCLGFBQWE7WUFDYixLQUFLLFNBQVMsQ0FBQyxJQUFJO2dCQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQTtZQUN0QixhQUFhO1lBQ2IsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUE7WUFDdEIsYUFBYTtTQUNkO0lBQ0gsQ0FBQzs7b0dBakVtQixNQUFNO3dHQUFOLE1BQU07NEZBQU4sTUFBTTtrQkFEM0IsVUFBVTs7MEJBS2MsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge0xvZ01lc3NhZ2V9IGZyb20gJy4vbG9nLW1lc3NhZ2UnXG5cbmNvbnN0IHNwYWNlcyA9ICcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuXG5leHBvcnQgdHlwZSBMb2dMZXZlbCA9ICd0cmFjZScgfCAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdmYXRhbCcgfCAnTk9ORSdcblxuLyoqXG4gKlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IExvZ0xldmVscyA9IHtcbiAgTk9ORTogIDxMb2dMZXZlbD4nTk9ORScsXG4gIGZhdGFsOiA8TG9nTGV2ZWw+J2ZhdGFsJyxcbiAgZXJyb3I6IDxMb2dMZXZlbD4nZXJyb3InLFxuICB3YXJuOiAgPExvZ0xldmVsPid3YXJuJyxcbiAgaW5mbzogIDxMb2dMZXZlbD4naW5mbycsXG4gIGRlYnVnOiA8TG9nTGV2ZWw+J2RlYnVnJyxcbiAgdHJhY2U6IDxMb2dMZXZlbD4ndHJhY2UnXG59XG5cbmV4cG9ydCBjbGFzcyBMb2dnZXJDb25maWd1cmF0aW9uIHtcbiAgY29udGV4dEFzU3RyaW5nV2lkdGg6IG51bWJlciA9IDMwXG4gIGluY2x1ZGVGdWxsQ29udGV4dDogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKlxuICAgKiBGb3IgdGVtcG9yYXJpbHkgc2h1dHRpbmcgb2YgbG9nZ2luZywgdXNlIE5PTkUsIGJ1dCBpZiB5b3UgYXJlIHNodXR0aW5nIG9mZiBsb2dnaW5nIGZvciBwcm9kdWN0aW9uLCBvciBiZWNhdXNlIHlvdSdyZSB1c2luZ1xuICAgKiBhbm90aGVyIGxvZ2dpbmcgc3lzdGVtLCB5b3Ugc2hvdWxkIFByb3ZpZGUgYSBzaW1wbGVyIGxvZ2dpbmcgY2xhc3MgaW4geW91ciBtb2R1bGUgY29uZmlndXJhdGlvbi5cbiAgICogQHR5cGUge0xvZ0xldmVsfVxuICAgKi9cbiAgbG9nTGV2ZWw6IExvZ0xldmVsID0gJ3RyYWNlJ1xufVxuXG5jb25zdCBlbXB0eUZuID0gZnVuY3Rpb24gKC4uLng6IGFueVtdKTogYW55IHt9XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvZ2dlciB7XG5cbiAgY29uZmlnOiBMb2dnZXJDb25maWd1cmF0aW9uID0gbmV3IExvZ2dlckNvbmZpZ3VyYXRpb24oKVxuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uPzogTG9nZ2VyQ29uZmlndXJhdGlvbikge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlndXJhdGlvbiB8fCB0aGlzLmNvbmZpZ1xuICAgIHRoaXMuYXBwbHlMZXZlbCgpXG4gIH1cblxuICBhYnN0cmFjdCBsb2cobWVzc2FnZTogTG9nTWVzc2FnZSk6IHZvaWRcblxuICB0cmFjZShjb250ZXh0OiBhbnksIC4uLm1lc3NhZ2U6YW55W10pIHtcbiAgICB0aGlzLmxvZyhuZXcgTG9nTWVzc2FnZSgndHJhY2UnLCBjb250ZXh0LCAuLi5tZXNzYWdlKSlcbiAgfVxuXG4gIGRlYnVnKGNvbnRleHQ6IGFueSwgLi4ubWVzc2FnZTphbnlbXSkge1xuICAgIHRoaXMubG9nKG5ldyBMb2dNZXNzYWdlKCdkZWJ1ZycsIGNvbnRleHQsIC4uLm1lc3NhZ2UpKVxuICB9XG5cbiAgaW5mbyhjb250ZXh0OiBhbnksIC4uLm1lc3NhZ2U6YW55W10pIHtcbiAgICB0aGlzLmxvZyhuZXcgTG9nTWVzc2FnZSgnaW5mbycsIGNvbnRleHQsIC4uLm1lc3NhZ2UpKVxuICB9XG5cbiAgd2Fybihjb250ZXh0OiBhbnksIC4uLm1lc3NhZ2U6YW55W10pIHtcbiAgICB0aGlzLmxvZyhuZXcgTG9nTWVzc2FnZSgnd2FybicsIGNvbnRleHQsIC4uLm1lc3NhZ2UpKVxuICB9XG5cbiAgZXJyb3IoY29udGV4dDogYW55LCAuLi5tZXNzYWdlOmFueVtdKSB7XG4gICAgdGhpcy5sb2cobmV3IExvZ01lc3NhZ2UoJ2Vycm9yJywgY29udGV4dCwgLi4ubWVzc2FnZSkpXG4gIH1cblxuICBmYXRhbChjb250ZXh0OiBhbnksIC4uLm1lc3NhZ2U6YW55W10pIHtcbiAgICB0aGlzLmxvZyhuZXcgTG9nTWVzc2FnZSgnZmF0YWwnLCBjb250ZXh0LCAuLi5tZXNzYWdlKSlcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhcHBseUxldmVsKCkge1xuICAgIGNvbnNvbGUubG9nKCdMb2dnZXInLCAnYXBwbHlMZXZlbCcsIHRoaXMuY29uZmlnKVxuICAgIC8qKlxuICAgICAqIFRoaXMga2VlcHMgbm9pc2Ugb2ZmIHRoZSBzeXN0ZW0gYnVzIHdoZW4gcnVubmluZyBpbiBwcm9kdWN0aW9uIG1vZGUgb3Igd2l0aCBsb2dnaW5nIG9mZi5cbiAgICAgKiBZZXMsIGl0J3Mgc3VwcG9zZWQgdG8gZmFsbCB0aHJvdWdoLCBkZXNwaXRlIHRoZSBldmlsIG5hdHVyZS5cbiAgICAgKi9cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgLy8gbm9pbnNwZWN0aW9uIEZhbGxUaHJvdWdoSW5Td2l0Y2hTdGF0ZW1lbnRKU1xuICAgIHN3aXRjaCAodGhpcy5jb25maWcubG9nTGV2ZWwpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLk5PTkU6XG4gICAgICAgIHRoaXMuZmF0YWwgPSBlbXB0eUZuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjYXNlIExvZ0xldmVscy5mYXRhbDpcbiAgICAgICAgdGhpcy5lcnJvciA9IGVtcHR5Rm5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNhc2UgTG9nTGV2ZWxzLmVycm9yOlxuICAgICAgICB0aGlzLndhcm4gPSBlbXB0eUZuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjYXNlIExvZ0xldmVscy53YXJuOlxuICAgICAgICB0aGlzLmluZm8gPSBlbXB0eUZuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjYXNlIExvZ0xldmVscy5pbmZvOlxuICAgICAgICB0aGlzLmRlYnVnID0gZW1wdHlGblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY2FzZSBMb2dMZXZlbHMuZGVidWc6XG4gICAgICAgIHRoaXMudHJhY2UgPSBlbXB0eUZuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==