Fixed Logger initialization
Renamed EnvoyLogger to EnvoyLog and moved it to the newl< created envoy.client.util package.
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
			
		||||
package envoy.client;
 | 
			
		||||
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
import javax.ws.rs.client.ClientBuilder;
 | 
			
		||||
import javax.ws.rs.client.Entity;
 | 
			
		||||
import javax.ws.rs.client.WebTarget;
 | 
			
		||||
@@ -8,7 +10,7 @@ import javax.xml.bind.JAXBContext;
 | 
			
		||||
import javax.xml.bind.JAXBException;
 | 
			
		||||
import javax.xml.bind.Marshaller;
 | 
			
		||||
 | 
			
		||||
import envoy.client.event.EnvoyLogger;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.schema.ObjectFactory;
 | 
			
		||||
import envoy.schema.Sync;
 | 
			
		||||
import envoy.schema.User;
 | 
			
		||||
@@ -29,7 +31,7 @@ public class Client {
 | 
			
		||||
	private Config			config;
 | 
			
		||||
	private User			sender, recipient;
 | 
			
		||||
 | 
			
		||||
	private static final EnvoyLogger logger = new EnvoyLogger(Client.class.getSimpleName());
 | 
			
		||||
	private static final Logger logger = EnvoyLog.getLogger(Client.class.getSimpleName());
 | 
			
		||||
 | 
			
		||||
	public Client(Config config, String username) {
 | 
			
		||||
		this.config	= config;
 | 
			
		||||
 
 | 
			
		||||
@@ -14,9 +14,9 @@ import java.util.logging.Logger;
 | 
			
		||||
import javax.xml.datatype.DatatypeConfigurationException;
 | 
			
		||||
import javax.xml.datatype.DatatypeFactory;
 | 
			
		||||
 | 
			
		||||
import envoy.client.event.EnvoyLogger;
 | 
			
		||||
import envoy.client.event.EventBus;
 | 
			
		||||
import envoy.client.event.MessageCreationEvent;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.exception.EnvoyException;
 | 
			
		||||
import envoy.schema.Message;
 | 
			
		||||
import envoy.schema.Message.Metadata.MessageState;
 | 
			
		||||
@@ -45,7 +45,7 @@ public class LocalDB {
 | 
			
		||||
	private Sync	sync				= objectFactory.createSync();
 | 
			
		||||
	private Sync	readMessages		= objectFactory.createSync();
 | 
			
		||||
 | 
			
		||||
    private static final Logger logger = new EnvoyLogger(LocalDB.class.getSimpleName());
 | 
			
		||||
    private static final Logger logger = EnvoyLog.getLogger(LocalDB.class.getSimpleName());
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Constructs an empty local database.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,83 +0,0 @@
 | 
			
		||||
package envoy.client.event;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.logging.ConsoleHandler;
 | 
			
		||||
import java.util.logging.FileHandler;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.LogRecord;
 | 
			
		||||
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 EnvoyLogger extends Logger {
 | 
			
		||||
 | 
			
		||||
	private Logger	logger;
 | 
			
		||||
	private Level	fileLevelBarrier	= Level.CONFIG;
 | 
			
		||||
 | 
			
		||||
	public EnvoyLogger(String name) {
 | 
			
		||||
		super(name, null);
 | 
			
		||||
		try {
 | 
			
		||||
			SimpleFormatter	formatter	= new SimpleFormatter();
 | 
			
		||||
			FileHandler		fh			= new FileHandler("envoy_user.log");
 | 
			
		||||
			fh.setLevel(fileLevelBarrier);
 | 
			
		||||
			fh.setFormatter(formatter);
 | 
			
		||||
			ConsoleHandler ch = new ConsoleHandler();
 | 
			
		||||
			ch.setLevel(Level.FINEST);
 | 
			
		||||
			ch.setFormatter(formatter);
 | 
			
		||||
			logger.addHandler(fh);
 | 
			
		||||
			logger.addHandler(ch);
 | 
			
		||||
		} catch (IOException | SecurityException e) {
 | 
			
		||||
			e.printStackTrace();
 | 
			
		||||
			this.log(Level.FINE, "Ironically, the logger encountered an error while initialising. That certainly needs to be logged :)");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Logs a message. If the problem severity is above the FileLevel-barrier, then
 | 
			
		||||
	 * the log entry will be written to a file. Regardless of problem severity,
 | 
			
		||||
	 * everything will be printed to the console.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param level the problem severity
 | 
			
		||||
	 * @param msg   the message to be written in the log
 | 
			
		||||
	 * @since Envoy v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	@Override
 | 
			
		||||
	public void log(Level level, String msg) {
 | 
			
		||||
		LogRecord lr = new LogRecord(level, msg);
 | 
			
		||||
		logger.log(lr);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Logs a message. If the problem severity is above the {@code FileLevel}
 | 
			
		||||
	 * barrier, then the log entry will be written to a file.
 | 
			
		||||
	 * Regardless of problem severity, everything will be printed to the console.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param logRecord the LogRecord (Level and String) to be treated by the
 | 
			
		||||
	 *                  Logger.
 | 
			
		||||
	 * @since Envoy v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	@Override
 | 
			
		||||
	public void log(LogRecord logRecord) { logger.log(logRecord); }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @return the fileLevelBarrier: The current barrier for writing logs to a file.
 | 
			
		||||
	 * @since Envoy v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public 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 void setFileLevel(String fileLevelBarrier) { this.fileLevelBarrier = Level.parse(fileLevelBarrier); }
 | 
			
		||||
}
 | 
			
		||||
@@ -12,6 +12,7 @@ import java.awt.event.WindowAdapter;
 | 
			
		||||
import java.awt.event.WindowEvent;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
import javax.swing.DefaultListModel;
 | 
			
		||||
import javax.swing.JButton;
 | 
			
		||||
@@ -32,7 +33,7 @@ import envoy.client.Client;
 | 
			
		||||
import envoy.client.Config;
 | 
			
		||||
import envoy.client.LocalDB;
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.event.EnvoyLogger;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.schema.Message;
 | 
			
		||||
import envoy.schema.Sync;
 | 
			
		||||
import envoy.schema.User;
 | 
			
		||||
@@ -68,7 +69,7 @@ public class ChatWindow extends JFrame {
 | 
			
		||||
 | 
			
		||||
	private static int space = 4;
 | 
			
		||||
 | 
			
		||||
	private static final EnvoyLogger logger = new EnvoyLogger(ChatWindow.class.getSimpleName());
 | 
			
		||||
	private static final Logger logger = EnvoyLog.getLogger(ChatWindow.class.getSimpleName());
 | 
			
		||||
 | 
			
		||||
	public ChatWindow(Client client, LocalDB localDB) {
 | 
			
		||||
		this.client		= client;
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ import javax.swing.JTextPane;
 | 
			
		||||
import javax.swing.ListSelectionModel;
 | 
			
		||||
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.event.EnvoyLogger;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This class provides the GUI to change the user specific settings.
 | 
			
		||||
@@ -64,7 +64,7 @@ public class SettingsScreen extends JDialog {
 | 
			
		||||
	private Theme		selectedTheme	= Settings.getInstance().getThemes().get(Settings.getInstance().getCurrentTheme());
 | 
			
		||||
	private Theme		temporaryTheme;
 | 
			
		||||
 | 
			
		||||
	private static final Logger logger = new EnvoyLogger(SettingsScreen.class.getSimpleName());
 | 
			
		||||
	private static final Logger logger = EnvoyLog.getLogger(SettingsScreen.class.getSimpleName());
 | 
			
		||||
 | 
			
		||||
	// TODO: Add a JPanel with all the Information necessary:
 | 
			
		||||
	// change (Picture,Username, Email, Password) and toggle(light/dark mode,
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@ package envoy.client.ui;
 | 
			
		||||
import java.awt.EventQueue;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.Properties;
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
import javax.swing.JOptionPane;
 | 
			
		||||
@@ -12,7 +11,7 @@ import envoy.client.Client;
 | 
			
		||||
import envoy.client.Config;
 | 
			
		||||
import envoy.client.LocalDB;
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
import envoy.client.event.EnvoyLogger;
 | 
			
		||||
import envoy.client.util.EnvoyLog;
 | 
			
		||||
import envoy.exception.EnvoyException;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -29,11 +28,9 @@ import envoy.exception.EnvoyException;
 | 
			
		||||
 */
 | 
			
		||||
public class Startup {
 | 
			
		||||
 | 
			
		||||
	private static final Logger logger = new EnvoyLogger(Startup.class.getSimpleName());
 | 
			
		||||
	private static final Logger logger = EnvoyLog.getLogger(Startup.class.getSimpleName());
 | 
			
		||||
 | 
			
		||||
	public static void main(String[] args) {
 | 
			
		||||
		logger.setLevel(Level.ALL);
 | 
			
		||||
 | 
			
		||||
		Config config = Config.getInstance();
 | 
			
		||||
 | 
			
		||||
		// Load the configuration from client.properties first
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										70
									
								
								src/main/java/envoy/client/util/EnvoyLog.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								src/main/java/envoy/client/util/EnvoyLog.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
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); }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user