File

src/client/app/modules/core/services/logging/log.service.ts

Index

Methods

Constructor

constructor(targets: [])

Methods

Public debug
debug(...msg: any[])
Returns : any
Public error
error(...err: any[])
Returns : any
Public info
info(...err: any[])
Returns : any
Private logEvent
logEvent(target: LogTarget, message: string|, level: LogLevel)
Returns : any
Public warn
warn(...err: any[])
Returns : any
import { Injectable, Inject, forwardRef } from '@angular/core';
import * as _ from 'lodash';

import { Config } from '../../utils/config';
import { ConsoleService } from '../console.service';
import { LogTarget, LogEvent, LogLevel } from './log.target';

@Injectable()
export class LogService {

  constructor( @Inject(LogTarget) private targets: LogTarget[]) {
  }

  // debug (standard output)
  public debug(...msg) {
    if (Config.DEBUG.LEVEL_4) {
      // console.debug does not work on {N} apps... use `log`
      return Promise.all(_.map(this.targets, logger => this.logEvent(logger, msg, LogLevel.Debug)));
    }
    return Promise.resolve();
  }

  // error
  public error(...err) {
    if (Config.DEBUG.LEVEL_4 || Config.DEBUG.LEVEL_3) {
      return Promise.all(_.map(this.targets, logger => this.logEvent(logger, err, LogLevel.Error)));
    }
    return Promise.resolve();
  }

  // warn
  public warn(...err) {
    if (Config.DEBUG.LEVEL_4 || Config.DEBUG.LEVEL_2) {
      return Promise.all(_.map(this.targets, logger => this.logEvent(logger, err, LogLevel.Warning)));
    }
    return Promise.resolve();
  }

  // info
  public info(...err) {
    if (Config.DEBUG.LEVEL_4 || Config.DEBUG.LEVEL_1) {
      return Promise.all(_.map(this.targets, logger => this.logEvent(logger, err, LogLevel.Info)));
    }
    return Promise.resolve();
  }

  private logEvent(target: LogTarget, message: string | Object, level: LogLevel) {
    return target.log({ level: level, message: message });
  }
}

results matching ""

    No results matching ""