1 /* 2 * Copyright (c) 2021 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 16 package ohos.devtools.datasources.utils.profilerlog; 17 18 import org.apache.logging.log4j.Level; 19 import org.apache.logging.log4j.LogManager; 20 import org.apache.logging.log4j.Logger; 21 22 /** 23 * ProfilerLogManager 24 * 25 * @since 2021/5/19 16:39 26 */ 27 public class ProfilerLogManager { 28 private static final Logger LOGGER = LogManager.getLogger(ProfilerLogManager.class); 29 private static Level nowLogLevel = Level.OFF; 30 31 /** 32 * 单例进程对象 33 */ 34 private static ProfilerLogManager singleton = null; 35 36 /** 37 * getSingleton 38 * 39 * @return ProfilerLogManager 40 */ getSingleton()41 public static ProfilerLogManager getSingleton() { 42 if (singleton == null) { 43 synchronized (ProfilerLogManager.class) { 44 if (singleton == null) { 45 singleton = new ProfilerLogManager(); 46 } 47 } 48 } 49 return singleton; 50 } 51 52 /** 53 * updateLogLevel 54 * 55 * @param logLevel loglevel 56 * @return boolean 57 */ updateLogLevel(Level logLevel)58 public static boolean updateLogLevel(Level logLevel) { 59 if (logLevel == null) { 60 return false; 61 } 62 nowLogLevel = logLevel; 63 return true; 64 } 65 66 /** 67 * isInfoEnabled 68 * 69 * @return boolean 70 */ isInfoEnabled()71 public static boolean isInfoEnabled() { 72 return nowLogLevel.intLevel() >= Level.INFO.intLevel(); 73 } 74 75 /** 76 * isErrorEnabled 77 * 78 * @return boolean 79 */ isErrorEnabled()80 public static boolean isErrorEnabled() { 81 return nowLogLevel.intLevel() >= Level.ERROR.intLevel(); 82 } 83 84 /** 85 * isDebugEnabled 86 * 87 * @return boolean 88 */ isDebugEnabled()89 public static boolean isDebugEnabled() { 90 return nowLogLevel.intLevel() >= Level.DEBUG.intLevel(); 91 } 92 93 /** 94 * isWarnEnabled 95 * 96 * @return boolean 97 */ isWarnEnabled()98 public static boolean isWarnEnabled() { 99 return nowLogLevel.intLevel() >= Level.WARN.intLevel(); 100 } 101 102 /** 103 * getNowLogLevel 104 * 105 * @return Level 106 */ getNowLogLevel()107 public static Level getNowLogLevel() { 108 if (ProfilerLogManager.isInfoEnabled()) { 109 LOGGER.info("getNowLogLevel"); 110 } 111 return nowLogLevel; 112 } 113 } 114