UNPKG

@ngx-toolkit/logger

Version:
178 lines (167 loc) 6.21 kB
import * as i0 from '@angular/core'; import { InjectionToken, Injectable, Optional, Inject, APP_INITIALIZER, NgModule } from '@angular/core'; import { tap } from 'rxjs/operators'; /** * Log levels */ var Level; (function (Level) { Level[Level["ERROR"] = 0] = "ERROR"; Level[Level["WARN"] = 1] = "WARN"; Level[Level["INFO"] = 2] = "INFO"; Level[Level["DEBUG"] = 3] = "DEBUG"; Level[Level["LOG"] = 4] = "LOG"; })(Level || (Level = {})); const LOGGER_LEVEL = new InjectionToken('LOGGER_LEVEL'); class LoggerService { /** * Outputs an error message. */ error(message, ...optionalParams) { } /** * Outputs a warning message. */ warn(message, ...optionalParams) { } /** * Outputs an informational message. */ info(message, ...optionalParams) { } /** * Outputs a debug message. */ debug(message, ...optionalParams) { } /** * Outputs a message. */ log(message, ...optionalParams) { } /** * Outputs a message. */ logLevel(level, message, ...optionalParams) { switch (level) { case Level.ERROR: this.error(message, ...optionalParams); break; case Level.WARN: this.warn(message, ...optionalParams); break; case Level.INFO: this.info(message, ...optionalParams); break; case Level.DEBUG: this.debug(message, ...optionalParams); break; case Level.LOG: this.log(message, ...optionalParams); break; } } } LoggerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); LoggerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerService, decorators: [{ type: Injectable }] }); class ConsoleLoggerService extends LoggerService { constructor(level) { super(); if (level) { Object.keys(Level) .filter(s => isNaN(+s) && level >= Level[s]) .forEach(levelName => { const methodName = levelName.toLowerCase(); this[methodName] = console[methodName].bind(console); }); } } } ConsoleLoggerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ConsoleLoggerService, deps: [{ token: LOGGER_LEVEL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); ConsoleLoggerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ConsoleLoggerService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ConsoleLoggerService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: Level, decorators: [{ type: Optional }, { type: Inject, args: [LOGGER_LEVEL] }] }]; } }); const LOGGER_DECORATOR_DATA = {}; function Debug(message) { return Log(message, Level.DEBUG); } function Log(message, level = Level.INFO) { return (target, propertyKey, descriptor) => { const originalMethod = descriptor.value; descriptor.value = function (...args) { const result = originalMethod.apply(this, args); if (LOGGER_DECORATOR_DATA.loggerService) { LOGGER_DECORATOR_DATA.loggerService.logLevel(level, message || `Call ${propertyKey.toString()}`, args, result); } return result; }; return descriptor; }; } function setupLoggerDecorator(loggerService) { LOGGER_DECORATOR_DATA.loggerService = loggerService; return () => null; } class LoggerModule { static forRoot(level = null, provider = ConsoleLoggerService) { return { ngModule: LoggerModule, providers: [ { provide: LOGGER_LEVEL, useValue: level }, { provide: LoggerService, useClass: provider }, { provide: APP_INITIALIZER, useFactory: setupLoggerDecorator, deps: [LoggerService], multi: true } ] }; } } LoggerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); LoggerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerModule }); LoggerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerModule }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: LoggerModule, decorators: [{ type: NgModule }] }); function logger(message, nextLevel = Level.INFO, errorLevel = Level.ERROR, completeLevel) { return tap(x => { if (LOGGER_DECORATOR_DATA.loggerService) { LOGGER_DECORATOR_DATA.loggerService.logLevel(nextLevel, message, x); } }, e => { if (LOGGER_DECORATOR_DATA.loggerService) { LOGGER_DECORATOR_DATA.loggerService.logLevel(errorLevel, message, e); } }, () => { if (LOGGER_DECORATOR_DATA.loggerService && completeLevel) { LOGGER_DECORATOR_DATA.loggerService.logLevel(completeLevel, message); } }); } /* * Public API Surface of logger */ /** * Generated bundle index. Do not edit. */ export { ConsoleLoggerService, Debug, LOGGER_LEVEL, Level, Log, LoggerModule, LoggerService, logger }; //# sourceMappingURL=ngx-toolkit-logger.mjs.map