Skip to content

Commit 0dcf0c8

Browse files
committed
Added verbose level to messages and ms to timestamps
1 parent ac5a52c commit 0dcf0c8

4 files changed

Lines changed: 73 additions & 28 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>io.github.Fi0x</groupId>
88
<artifactId>JavaLogger</artifactId>
9-
<version>1.1.11</version>
9+
<version>1.2.0</version>
1010
<name>Java Logger</name>
1111
<description>This is a Library for a custom Java Logger</description>
1212
<url>http://github.com/Fi0x/JavaLogger</url>

src/main/java/io/fi0x/javalogger/logging/LogEntry.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class LogEntry
2020
Exception exception = null;
2121
boolean fileEntry = true;
2222
boolean onlyVerbose = false;
23+
int verboseLevel = 0;
2324
boolean onlyDebug = false;
2425
boolean plainText = false;
2526
boolean consoleException = false;
@@ -54,6 +55,7 @@ public LogEntry(String text, String templateName) throws IllegalArgumentExceptio
5455
this.loglevel = t.loglevel;
5556
this.fileEntry = t.fileEntry;
5657
this.onlyVerbose = t.onlyVerbose;
58+
this.verboseLevel = t.verboseLevel;
5759
this.onlyDebug = t.onlyDebug;
5860
this.plainText = t.plainText;
5961
this.consoleException = t.consoleException;
@@ -156,6 +158,17 @@ public LogEntry VERBOSE(boolean onlyInVerboseMode)
156158
onlyVerbose = onlyInVerboseMode;
157159
return this;
158160
}
161+
/**
162+
* Set the verbose-level of this {@link LogEntry}.
163+
* @param verboseLvl The verbose-level of the Logger which is at least required to show this message.
164+
* (Default is 0)
165+
* @return The current {@link LogEntry} to be used further.
166+
*/
167+
public LogEntry LEVEL(int verboseLvl)
168+
{
169+
verboseLevel = verboseLvl;
170+
return this;
171+
}
159172
/**
160173
* Stop this {@link LogEntry} from using the prefix information.
161174
* The removed prefix information is the time, logging-level and error-code.

src/main/java/io/fi0x/javalogger/logging/LogTemplate.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,21 @@ class LogTemplate
1111
String loglevel;
1212
boolean fileEntry;
1313
boolean onlyVerbose;
14+
int verboseLevel;
1415
boolean onlyDebug;
1516
boolean plainText;
1617
boolean consoleException;
1718
boolean mixpanelMessage;
1819
String mixpanelEventName;
1920

20-
LogTemplate(String color, String background, String level, boolean writeToFile, boolean requireVerbose, boolean requireDebug, boolean noPrefix, boolean showExceptionInConsole, boolean mixpanelMessage, String mixpanelEventName)
21+
LogTemplate(String color, String background, String level, boolean writeToFile, boolean requireVerbose, int verboseLevel, boolean requireDebug, boolean noPrefix, boolean showExceptionInConsole, boolean mixpanelMessage, String mixpanelEventName)
2122
{
2223
this.color = color;
2324
this.background = background;
2425
this.loglevel = level;
2526
this.fileEntry = writeToFile;
2627
this.onlyVerbose = requireVerbose;
28+
this.verboseLevel = verboseLevel;
2729
this.onlyDebug = requireDebug;
2830
this.plainText = noPrefix;
2931
this.consoleException = showExceptionInConsole;

src/main/java/io/fi0x/javalogger/logging/Logger.java

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,16 @@ public class Logger
2222
private File currentLogFile;
2323
private boolean isDebug;
2424
private boolean isVerbose;
25+
private int verboseLevel = 0;
2526
private boolean smallLog;
2627
private boolean consoleExceptions;
2728

28-
static Map<String, LogTemplate> templates = new HashMap<String,LogTemplate>() {{
29-
put(TEMPLATE.VERBOSE.name(), new LogTemplate(LogColor.WHITE, "", "VER", false, true, false, false, false, false, "LOG"));
30-
put(TEMPLATE.INFO.name(), new LogTemplate(LogColor.WHITE, "", "INF", true, true, true, false, false, false, "LOG"));
31-
put(TEMPLATE.WARNING.name(), new LogTemplate(LogColor.YELLOW, "", "WRN", true, false, false, false, false, true, "LOG"));
32-
put(TEMPLATE.ERROR.name(), new LogTemplate(LogColor.RED, "", "ERR", true, false, false, false, false, true, "LOG"));
29+
static Map<String, LogTemplate> templates = new HashMap<>()
30+
{{
31+
put(TEMPLATE.VERBOSE.name(), new LogTemplate(LogColor.WHITE, "", "VER", false, true, 0, false, false, false, false, "LOG"));
32+
put(TEMPLATE.INFO.name(), new LogTemplate(LogColor.WHITE, "", "INF", true, true, 0, true, false, false, false, "LOG"));
33+
put(TEMPLATE.WARNING.name(), new LogTemplate(LogColor.YELLOW, "", "WRN", true, false, 0, false, false, false, true, "LOG"));
34+
put(TEMPLATE.ERROR.name(), new LogTemplate(LogColor.RED, "", "ERR", true, false, 0, false, false, false, true, "LOG"));
3335
}};
3436

3537
private Logger()
@@ -83,6 +85,16 @@ public void setVerbose(boolean isVerboseMode)
8385
{
8486
isVerbose = isVerboseMode;
8587
}
88+
/**
89+
* Change the current verbose-level. This will show messages
90+
* with the selected verbose level or lower.
91+
* @param level How many different verbose levels should be active.
92+
* (Default is 0)
93+
*/
94+
public void setVerboseLevel(int level)
95+
{
96+
verboseLevel = level;
97+
}
8698
/**
8799
* Change the way {@link LogEntry}s are displayed.
88100
* Using small-logs will remove all prefixes from logging.
@@ -117,8 +129,11 @@ public void setConsoleExceptions(boolean showExceptionsInConsole)
117129
public static void log(LogEntry log)
118130
{
119131
String logOutput = createLogString(log);
132+
boolean debugOK = !log.onlyDebug || getInstance().isDebug;
133+
boolean verboseOK = !log.onlyVerbose || getInstance().isVerbose;
134+
boolean verboseLevelOK = log.verboseLevel <= getInstance().verboseLevel;
120135

121-
if((log.onlyDebug && getInstance().isDebug) || (log.onlyVerbose && getInstance().isVerbose) || (!log.onlyVerbose && !log.onlyDebug))
136+
if(debugOK || (verboseOK && verboseLevelOK))
122137
{
123138
System.out.println(log.color + log.background + logOutput + LogColor.RESET);
124139

@@ -206,118 +221,133 @@ public static boolean log(String text, Enum<?> template)
206221
* @param writeToFile If {@link LogEntry}s written with this {@link LogTemplate} should be saved in a log-file.
207222
* @param onlyDebug If {@link LogEntry}s with these settings should only be visible in debug-mode.
208223
* @param onlyVerbose If {@link LogEntry}s with these settings should only be visible in verbose-mode.
224+
* @param verboseLevel The minimum required level for messages with this {@link LogEntry} to be displayed if they are onlyVerbose.
209225
* @param hidePrefix If only the actual message without timestamp, logging-level and error-code should be shown.
210226
* @param exceptionsInConsole If {@link LogEntry}s whith these settings should print their exceptions in the console.
211227
* @param mixpanelMessage If the {@link LogEntry} should be sent to Mixpanel.
212228
* @param mixpanelName The name of the Mixpanel-event.
213229
* @return True if the {@link LogTemplate} was created successfully, False if the {@link LogTemplate} was overwritten.
214230
*/
215-
public static boolean createNewTemplate(String templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean exceptionsInConsole, boolean mixpanelMessage, String mixpanelName)
231+
public static boolean createNewTemplate(String templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, int verboseLevel, boolean onlyDebug, boolean hidePrefix, boolean exceptionsInConsole, boolean mixpanelMessage, String mixpanelName)
216232
{
217233
boolean isNew = !templates.containsKey(templateName);
218-
templates.put(templateName, new LogTemplate(colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, exceptionsInConsole, mixpanelMessage, mixpanelName));
234+
templates.put(templateName, new LogTemplate(colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, verboseLevel, onlyDebug, hidePrefix, exceptionsInConsole, mixpanelMessage, mixpanelName));
219235
return isNew;
220236
}
221237
/**
222-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
238+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
239+
*/
240+
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, int verboseLevel, boolean onlyDebug, boolean hidePrefix, boolean exceptionsInConsole, boolean mixpanelMessage, String mixpanelName)
241+
{
242+
return createNewTemplate(templateName.name(), colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, verboseLevel, onlyDebug, hidePrefix, exceptionsInConsole, mixpanelMessage, mixpanelName);
243+
}
244+
/**
245+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
246+
*/
247+
public static boolean createNewTemplate(String templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean exceptionsInConsole, boolean mixpanelMessage, String mixpanelName)
248+
{
249+
return createNewTemplate(templateName, colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, 0, onlyDebug, hidePrefix, exceptionsInConsole, mixpanelMessage, mixpanelName);
250+
}
251+
/**
252+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
223253
*/
224254
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean exceptionsInConsole, boolean mixpanelMessage, String mixpanelName)
225255
{
226-
return createNewTemplate(templateName.name(), colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, exceptionsInConsole, mixpanelMessage, mixpanelName);
256+
return createNewTemplate(templateName, colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, 0, onlyDebug, hidePrefix, exceptionsInConsole, mixpanelMessage, mixpanelName);
227257
}
228258
/**
229-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
259+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
230260
*/
231261
public static boolean createNewTemplate(String templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean mixpanelMessage, String mixpanelName)
232262
{
233263
return createNewTemplate(templateName, colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, false, mixpanelMessage, mixpanelName);
234264
}
235265
/**
236-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
266+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
237267
*/
238268
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String backgroundColorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean mixpanelMessage, String mixpanelName)
239269
{
240-
return createNewTemplate(templateName.name(), colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, mixpanelMessage, mixpanelName);
270+
return createNewTemplate(templateName, colorCode, backgroundColorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, false, mixpanelMessage, mixpanelName);
241271
}
242272
/**
243-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
273+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
244274
*/
245275
public static boolean createNewTemplate(String templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean mixpanelMessage, String mixpanelName)
246276
{
247277
return createNewTemplate(templateName, colorCode, "", logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, mixpanelMessage, mixpanelName);
248278
}
249279
/**
250-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
280+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
251281
*/
252282
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean mixpanelMessage, String mixpanelName)
253283
{
254284
return createNewTemplate(templateName, colorCode, "", logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, mixpanelMessage, mixpanelName);
255285
}
256286
/**
257-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
287+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
258288
*/
259289
public static boolean createNewTemplate(String templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean mixpanelMessage)
260290
{
261291
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, mixpanelMessage, "LOG");
262292
}
263293
/**
264-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
294+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
265295
*/
266296
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix, boolean mixpanelMessage)
267297
{
268298
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, mixpanelMessage, "LOG");
269299
}
270300
/**
271-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
301+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
272302
*/
273303
public static boolean createNewTemplate(String templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix)
274304
{
275305
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, false);
276306
}
277307
/**
278-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
308+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
279309
*/
280310
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug, boolean hidePrefix)
281311
{
282312
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, hidePrefix, false);
283313
}
284314
/**
285-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
315+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
286316
*/
287317
public static boolean createNewTemplate(String templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug)
288318
{
289319
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, false);
290320
}
291321
/**
292-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
322+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
293323
*/
294324
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String logLevel, boolean writeToFile, boolean onlyVerbose, boolean onlyDebug)
295325
{
296326
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, onlyVerbose, onlyDebug, false);
297327
}
298328
/**
299-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
329+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
300330
*/
301331
public static boolean createNewTemplate(String templateName, String colorCode, String logLevel, boolean writeToFile)
302332
{
303333
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, false, false);
304334
}
305335
/**
306-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
336+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
307337
*/
308338
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String logLevel, boolean writeToFile)
309339
{
310340
return createNewTemplate(templateName, colorCode, logLevel, writeToFile, false, false);
311341
}
312342
/**
313-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
343+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
314344
*/
315345
public static boolean createNewTemplate(String templateName, String colorCode, String logLevel)
316346
{
317347
return createNewTemplate(templateName, colorCode, logLevel, true);
318348
}
319349
/**
320-
* @see #createNewTemplate(String, String, String, String, boolean, boolean, boolean, boolean, boolean, boolean, String)
350+
* @see #createNewTemplate(String, String, String, String, boolean, boolean, int, boolean, boolean, boolean, boolean, String)
321351
*/
322352
public static boolean createNewTemplate(Enum<?> templateName, String colorCode, String logLevel)
323353
{
@@ -336,7 +366,7 @@ private static String createLogString(LogEntry log)
336366
}
337367
private static String getLogEntryDate()
338368
{
339-
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
369+
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss:SSS");
340370
LocalDateTime now = LocalDateTime.now();
341371

342372
return "[" + dtf.format(now) + "]";

0 commit comments

Comments
 (0)