• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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