1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16export enum LogLevel { 17 OFF = Number.MAX_VALUE, 18 ERROR = 4000, 19 WARN = 3000, 20 INFO = 2000, 21 DEBUG = 1000, 22 TRACE = 500, 23 ALL = Number.MIN_VALUE, 24} 25 26export const error = (message?: any, ...optionalParams: any[]) => { 27 SpLog.logger(LogLevel.ERROR, message, ...optionalParams); 28}; 29export const warn = (message?: any, ...optionalParams: any[]) => { 30 SpLog.logger(LogLevel.WARN, message, ...optionalParams); 31}; 32export const info = (message?: any, ...optionalParams: any[]) => { 33 SpLog.logger(LogLevel.INFO, message, ...optionalParams); 34}; 35export const debug = (message?: any, ...optionalParams: any[]) => { 36 SpLog.logger(LogLevel.DEBUG, message, ...optionalParams); 37}; 38export const trace = (message?: any, ...optionalParams: any[]) => { 39 SpLog.logger(LogLevel.TRACE, message, ...optionalParams); 40}; 41export const log = (message?: any) => { 42 SpLog.logger(LogLevel.TRACE, message); 43}; 44 45class SpLog { 46 private static nowLogLevel: LogLevel = LogLevel.OFF; 47 48 public static getNowLogLevel(): LogLevel { 49 return this.nowLogLevel; 50 } 51 52 public static setLogLevel(logLevel: LogLevel) { 53 SpLog.nowLogLevel = logLevel; 54 } 55 56 public static logger(logLevel: LogLevel, message?: any, ...optionalParams: any[]) { 57 if (logLevel >= SpLog.nowLogLevel) { 58 switch (logLevel) { 59 case LogLevel.ERROR: 60 console.error(message, ...optionalParams); 61 break; 62 case LogLevel.WARN: 63 console.warn(message, ...optionalParams); 64 break; 65 case LogLevel.INFO: 66 console.info(message, ...optionalParams); 67 break; 68 case LogLevel.DEBUG: 69 console.debug(message, ...optionalParams); 70 break; 71 case LogLevel.TRACE: 72 console.trace(message, ...optionalParams); 73 break; 74 default: 75 console.log(message); 76 } 77 } 78 } 79} 80