-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathLogUtil.java
More file actions
100 lines (87 loc) · 3.19 KB
/
LogUtil.java
File metadata and controls
100 lines (87 loc) · 3.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.skyflow.utils.logger;
import com.skyflow.enums.LogLevel;
import com.skyflow.logs.InfoLogs;
import com.skyflow.utils.Constants;
import java.util.logging.*;
public final class LogUtil {
private static final Logger LOGGER = Logger.getLogger(LogUtil.class.getName());
private static final String SDK_LOG_PREFIX = "[" + Constants.SDK_PREFIX + "] ";
private static boolean isLoggerSetupDone = false;
synchronized public static void setupLogger(LogLevel logLevel) {
isLoggerSetupDone = true;
LogManager.getLogManager().reset();
LOGGER.setUseParentHandlers(false);
Formatter formatter = new SimpleFormatter() {
private static final String format = "%s: %s %n";
// Override format method
@Override
public synchronized String format(LogRecord logRecord) {
return String.format(
format,
loggerLevelToLogLevelMap(logRecord.getLevel()),
logRecord.getMessage()
);
}
};
ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setFormatter(formatter);
consoleHandler.setLevel(Level.CONFIG);
LOGGER.addHandler(consoleHandler);
LOGGER.setLevel(logLevelToLoggerLevelMap(logLevel));
printInfoLog(InfoLogs.LOGGER_SETUP_DONE.getLog());
}
public static void printErrorLog(String message) {
if (isLoggerSetupDone)
LOGGER.severe(SDK_LOG_PREFIX + message);
else {
setupLogger(LogLevel.ERROR);
LOGGER.severe(SDK_LOG_PREFIX + message);
}
}
public static void printDebugLog(String message) {
if (isLoggerSetupDone)
LOGGER.config(SDK_LOG_PREFIX + message);
}
public static void printWarningLog(String message) {
if (isLoggerSetupDone)
LOGGER.warning(SDK_LOG_PREFIX + message);
}
public static void printInfoLog(String message) {
if (isLoggerSetupDone)
LOGGER.info(SDK_LOG_PREFIX + message);
}
private static Level logLevelToLoggerLevelMap(LogLevel logLevel) {
Level loggerLevel;
switch (logLevel) {
case ERROR:
loggerLevel = Level.SEVERE;
break;
case WARN:
loggerLevel = Level.WARNING;
break;
case INFO:
loggerLevel = Level.INFO;
break;
case DEBUG:
loggerLevel = Level.CONFIG;
break;
default:
loggerLevel = Level.OFF;
}
return loggerLevel;
}
private static LogLevel loggerLevelToLogLevelMap(Level loggerLevel) {
LogLevel logLevel;
if (Level.SEVERE.equals(loggerLevel)) {
logLevel = LogLevel.ERROR;
} else if (Level.WARNING.equals(loggerLevel)) {
logLevel = LogLevel.WARN;
} else if (Level.INFO.equals(loggerLevel)) {
logLevel = LogLevel.INFO;
} else if (Level.CONFIG.equals(loggerLevel)) {
logLevel = LogLevel.DEBUG;
} else
logLevel = LogLevel.OFF;
return logLevel;
}
}