71 lines
2.0 KiB
Java
71 lines
2.0 KiB
Java
package envoy.client.util;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.util.logging.ConsoleHandler;
|
|
import java.util.logging.FileHandler;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
import java.util.logging.SimpleFormatter;
|
|
|
|
/**
|
|
* Project: <strong>envoy-client</strong><br>
|
|
* File: <strong>EnvoyLogger.java</strong><br>
|
|
* Created: <strong>14 Dec 2019</strong><br>
|
|
*
|
|
* @author Leon Hofmeister
|
|
* @since Envoy v0.2-alpha
|
|
*/
|
|
public class EnvoyLog {
|
|
|
|
private static Level fileLevelBarrier = Level.CONFIG;
|
|
|
|
private EnvoyLog() {}
|
|
|
|
/**
|
|
* Creates a {@link Logger} with a specified name
|
|
* @param name the name of the {@link Logger} to create
|
|
* @return the created {@link Logger}
|
|
*/
|
|
public static Logger getLogger(String name) {
|
|
// Get a logger with the specified name
|
|
Logger logger = Logger.getLogger(name);
|
|
|
|
final String logPath = "log/envoy_user.log";
|
|
new File(logPath).getParentFile().mkdirs();
|
|
|
|
SimpleFormatter formatter = new SimpleFormatter();
|
|
|
|
try {
|
|
FileHandler fh = new FileHandler(logPath);
|
|
fh.setLevel(fileLevelBarrier);
|
|
fh.setFormatter(formatter);
|
|
logger.addHandler(fh);
|
|
} catch (SecurityException | IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
ConsoleHandler ch = new ConsoleHandler();
|
|
ch.setLevel(Level.FINEST);
|
|
ch.setFormatter(formatter);
|
|
logger.addHandler(ch);
|
|
|
|
return logger;
|
|
}
|
|
|
|
/**
|
|
* @return the fileLevelBarrier: The current barrier for writing logs to a file.
|
|
* @since Envoy v0.2-alpha
|
|
*/
|
|
public static Level getFileLevelBarrier() { return fileLevelBarrier; }
|
|
|
|
/**
|
|
* @param fileLevelBarrier the severity below which logRecords will be written
|
|
* only to the console. At or above they'll also be
|
|
* logged in a file. Can be written either in Digits
|
|
* from 0 - 1000 or with the according name of the level
|
|
* @since Envoy v0.2-alpha
|
|
*/
|
|
public static void setFileLevel(String fileLevelBarrier) { EnvoyLog.fileLevelBarrier = Level.parse(fileLevelBarrier); }
|
|
}
|