blob: 84c9d035b5d0d764ee776cc35bd5cdaca2805173 [file] [log] [blame]
Sean Condon83fc39f2018-04-19 18:56:13 +01001/*
2 * Copyright 2018-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16import { Injectable } from '@angular/core';
17import { environment } from '../environments/environment';
18import { Logger } from './log.service';
19
Sean Condon2bd11b72018-06-15 08:00:48 +010020export let isDebugMode: boolean = !environment.production;
Sean Condon83fc39f2018-04-19 18:56:13 +010021
22/**
23 * ONOS GUI -- LogService
24 * Inspired by https://robferguson.org/blog/2017/09/09/a-simple-logging-service-for-angular-4/
25 */
26@Injectable()
27export class ConsoleLoggerService implements Logger {
Sean Condon2bd11b72018-06-15 08:00:48 +010028 private noop: () => void;
Sean Condon83fc39f2018-04-19 18:56:13 +010029
30 get debug() {
31 if (isDebugMode) {
32 return console.debug.bind(console);
33 } else {
Sean Condon2bd11b72018-06-15 08:00:48 +010034 return this.noop;
Sean Condon83fc39f2018-04-19 18:56:13 +010035 }
36 }
37
38 get info() {
39 if (isDebugMode) {
40 return console.info.bind(console);
41 } else {
Sean Condon2bd11b72018-06-15 08:00:48 +010042 return this.noop;
Sean Condon83fc39f2018-04-19 18:56:13 +010043 }
44 }
45
46 get warn() {
47 return console.warn.bind(console);
48 }
49
50 get error() {
51 return console.error.bind(console);
52 }
53
54 invokeConsoleMethod(type: string, args?: any): void {
Sean Condon2bd11b72018-06-15 08:00:48 +010055 const logFn: Function = (console)[type] || console.log || this.noop;
Sean Condon83fc39f2018-04-19 18:56:13 +010056 logFn.apply(console, [args]);
57 }
58}