Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 1x 120x 120x 120x 120x 120x 25x 2x 2x 2x 31x 31x 28x 28x | import { Inject, Injectable, Optional } from '@angular/core';
import { DynamicFormLibraryService } from '../dynamic-form-library/dynamic-form-library.service';
import { DynamicFormLogType } from './dynamic-form-log-type';
import { DynamicFormLogLevel } from './dynamic-form-log-level';
import { DynamicFormLoggerSettings, dynamicFormLoggerSettingsDefault, DYNAMIC_FORM_LOGGER_SETTINGS } from './dynamic-form-logger-settings';
import { DynamicFormLoggerType } from './dynamic-form-logger-type';
import { DynamicFormLoggerTypeConfig, DYNAMIC_FORM_LOGGER_TYPE_CONFIG } from './dynamic-form-logger-type-config';
@Injectable()
export class DynamicFormLogger {
readonly loggerTypes: DynamicFormLoggerType[];
constructor(
private libraryService: DynamicFormLibraryService,
@Optional() @Inject(DYNAMIC_FORM_LOGGER_TYPE_CONFIG)
private loggerTypeConfig: DynamicFormLoggerTypeConfig,
@Optional() @Inject(DYNAMIC_FORM_LOGGER_SETTINGS)
readonly settings: DynamicFormLoggerSettings,
) {
this.loggerTypes = this.libraryService.filterTypes(this.loggerTypeConfig);
this.settings = this.settings || dynamicFormLoggerSettingsDefault;
}
error<LogType extends DynamicFormLogType = DynamicFormLogType>(type: LogType, message?: string, ...data: any[]): void {
this.logForLevel(DynamicFormLogLevel.Error, type, message, ...data);
}
warning<LogType extends DynamicFormLogType = DynamicFormLogType>(type: LogType, message?: string, ...data: any[]): void {
this.logForLevel(DynamicFormLogLevel.Warning, type, message, ...data);
}
information<LogType extends DynamicFormLogType = DynamicFormLogType>(type: LogType, message?: string, ...data: any[]): void {
this.logForLevel(DynamicFormLogLevel.Information, type, message, ...data);
}
debug<LogType extends DynamicFormLogType = DynamicFormLogType>(type: LogType, message?: string, ...data: any[]): void {
this.logForLevel(DynamicFormLogLevel.Debug, type, message, ...data);
}
private logEnabled(level: DynamicFormLogLevel): boolean {
return this.settings.logLevel >= level;
}
private logForLevel<LogType extends DynamicFormLogType = DynamicFormLogType>(
level: DynamicFormLogLevel, type: LogType, message?: string, ...data: any[]
): void {
if (this.logEnabled(level)) {
const log = { timestamp: new Date(), level, type, message, data };
this.loggerTypes.filter(f => f.enabled).forEach(logger => logger.log(log));
}
}
}
|