Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Injectable } from '@angular/core';
- @Injectable()
- export class LoggerService {
- public level: number = 3;
- public levelDefs = {
- OFF: 0,
- ERROR: 1,
- WARN: 2,
- INFO: 3,
- DEBUG: 4,
- LOG: 5
- };
- constructor() {
- // ...
- }
- public setLogLevel(logLevel: 'OFF'|'ERROR'|'WARN'|'INFO'|'DEBUG') {
- switch (logLevel) {
- case 'OFF':
- this.level = this.levelDefs.OFF;
- break;
- case 'ERROR':
- this.level = this.levelDefs.ERROR;
- break;
- case 'WARN':
- this.level = this.levelDefs.WARN;
- break;
- case 'INFO':
- this.level = this.levelDefs.INFO;
- break;
- case 'DEBUG':
- this.level = this.levelDefs.DEBUG;
- break;
- default:
- this.level = this.levelDefs.LOG;
- break;
- }
- }
- public error(...args): void {
- this._call(this.levelDefs.ERROR, 'error', ...args);
- }
- public warn(...args): void {
- this._call(this.levelDefs.WARN, 'warn', ...args);
- }
- public info(...args): void {
- this._call(this.levelDefs.INFO, 'info', ...args);
- }
- public debug(...args): void {
- this._call(this.levelDefs.DEBUG, 'debug', ...args);
- }
- public log(...args): void {
- this._call(this.levelDefs.LOG, 'log', ...args);
- }
- private _call(level: number, type: string, ...args) {
- if (this.level >= level) {
- console[type].apply(console, args);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement