Merge pull request #71 from informatik-ag-ngl/f/improveeed_logging
Improved logging
This commit is contained in:
commit
3e2a44130a
@ -1,7 +1,9 @@
|
|||||||
package envoy.client;
|
package envoy.client;
|
||||||
|
|
||||||
|
import java.io.StringWriter;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.ws.rs.client.ClientBuilder;
|
import javax.ws.rs.client.ClientBuilder;
|
||||||
import javax.ws.rs.client.Entity;
|
import javax.ws.rs.client.Entity;
|
||||||
@ -11,6 +13,7 @@ import javax.xml.bind.JAXBContext;
|
|||||||
import javax.xml.bind.JAXBException;
|
import javax.xml.bind.JAXBException;
|
||||||
import javax.xml.bind.Marshaller;
|
import javax.xml.bind.Marshaller;
|
||||||
|
|
||||||
|
import envoy.client.util.EnvoyLog;
|
||||||
import envoy.exception.EnvoyException;
|
import envoy.exception.EnvoyException;
|
||||||
import envoy.schema.ObjectFactory;
|
import envoy.schema.ObjectFactory;
|
||||||
import envoy.schema.Sync;
|
import envoy.schema.Sync;
|
||||||
@ -20,7 +23,7 @@ import envoy.schema.User;
|
|||||||
* Project: <strong>envoy-client</strong><br>
|
* Project: <strong>envoy-client</strong><br>
|
||||||
* File: <strong>Client.java</strong><br>
|
* File: <strong>Client.java</strong><br>
|
||||||
* Created: <strong>28 Sep 2019</strong><br>
|
* Created: <strong>28 Sep 2019</strong><br>
|
||||||
*
|
*
|
||||||
* @author Kai S. K. Engelbart
|
* @author Kai S. K. Engelbart
|
||||||
* @author Maximilian Käfer
|
* @author Maximilian Käfer
|
||||||
* @author Leon Hofmeister
|
* @author Leon Hofmeister
|
||||||
@ -33,10 +36,12 @@ public class Client {
|
|||||||
private User sender, recipient;
|
private User sender, recipient;
|
||||||
private boolean online = false;
|
private boolean online = false;
|
||||||
|
|
||||||
|
private static final Logger logger = EnvoyLog.getLogger(Client.class.getSimpleName());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes the client. At this state, the client user has yet to be
|
* Initializes the client. At this state, the client user has yet to be
|
||||||
* initialized, which can be done by calling {@link Client#onlineInit(String)}.
|
* initialized, which can be done by calling {@link Client#onlineInit(String)}.
|
||||||
*
|
*
|
||||||
* @param config The {@link Config} instance to use in this client
|
* @param config The {@link Config} instance to use in this client
|
||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
*/
|
*/
|
||||||
@ -44,7 +49,7 @@ public class Client {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Enters the online mode by acquiring a user ID from the server.
|
* Enters the online mode by acquiring a user ID from the server.
|
||||||
*
|
*
|
||||||
* @param userName the name of the client user
|
* @param userName the name of the client user
|
||||||
* @throws EnvoyException if the online mode could not be entered or the request
|
* @throws EnvoyException if the online mode could not be entered or the request
|
||||||
* failed for some other reason
|
* failed for some other reason
|
||||||
@ -88,7 +93,7 @@ public class Client {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a {@link User} with a specific id by name.
|
* Returns a {@link User} with a specific id by name.
|
||||||
*
|
*
|
||||||
* @param name - the name of the {@link User}
|
* @param name - the name of the {@link User}
|
||||||
* @return a {@link User} with the specified name
|
* @return a {@link User} with the specified name
|
||||||
* @throws EnvoyException if the server does not return the requested ID
|
* @throws EnvoyException if the server does not return the requested ID
|
||||||
@ -146,7 +151,7 @@ public class Client {
|
|||||||
* Users: <br>
|
* Users: <br>
|
||||||
* Updating UserStatus of all users in LocalDB. (Server sends all users with
|
* Updating UserStatus of all users in LocalDB. (Server sends all users with
|
||||||
* their updated UserStatus to the client.) <br>
|
* their updated UserStatus to the client.) <br>
|
||||||
*
|
*
|
||||||
* @param userId the id of the {@link Client} who sends the {@link Sync}
|
* @param userId the id of the {@link Client} who sends the {@link Sync}
|
||||||
* @param sync the sync object (yet to be converted from java class to
|
* @param sync the sync object (yet to be converted from java class to
|
||||||
* sync.xml)
|
* sync.xml)
|
||||||
@ -163,7 +168,9 @@ public class Client {
|
|||||||
jc = JAXBContext.newInstance("envoy.schema");
|
jc = JAXBContext.newInstance("envoy.schema");
|
||||||
Marshaller m = jc.createMarshaller();
|
Marshaller m = jc.createMarshaller();
|
||||||
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
||||||
m.marshal(sync, System.out);
|
StringWriter stringWriter = new StringWriter();
|
||||||
|
m.marshal(sync, stringWriter);
|
||||||
|
logger.fine("Sending sync:\n" + stringWriter.toString());
|
||||||
} catch (JAXBException e) {
|
} catch (JAXBException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -180,7 +187,7 @@ public class Client {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the client user which is used to send messages.
|
* Sets the client user which is used to send messages.
|
||||||
*
|
*
|
||||||
* @param sender the client user to set
|
* @param sender the client user to set
|
||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
*/
|
*/
|
||||||
@ -194,7 +201,7 @@ public class Client {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the recipient.
|
* Sets the recipient.
|
||||||
*
|
*
|
||||||
* @param recipient the recipient to set
|
* @param recipient the recipient to set
|
||||||
* @since Envoy v0.1-alpha
|
* @since Envoy v0.1-alpha
|
||||||
*/
|
*/
|
||||||
|
@ -32,7 +32,8 @@ public class Config {
|
|||||||
items.put("port", new ConfigItem<>("port", "p", (input) -> Integer.parseInt(input), null));
|
items.put("port", new ConfigItem<>("port", "p", (input) -> Integer.parseInt(input), null));
|
||||||
items.put("localDB", new ConfigItem<>("localDB", "db", (input) -> new File(input), new File("localDB")));
|
items.put("localDB", new ConfigItem<>("localDB", "db", (input) -> new File(input), new File("localDB")));
|
||||||
items.put("syncTimeout", new ConfigItem<>("syncTimeout", "st", (input) -> Integer.parseInt(input), 1000));
|
items.put("syncTimeout", new ConfigItem<>("syncTimeout", "st", (input) -> Integer.parseInt(input), 1000));
|
||||||
items.put("homeDirectory", new ConfigItem<>("homeDirectory", "h", (input) -> new File(input), new File(System.getProperty("user.home"), ".envoy")));
|
items.put("homeDirectory",
|
||||||
|
new ConfigItem<>("homeDirectory", "h", (input) -> new File(input), new File(System.getProperty("user.home"), ".envoy")));
|
||||||
items.put("fileLevelBarrier", new ConfigItem<>("fileLevelBarrier", "fb", (input) -> Level.parse(input), Level.CONFIG));
|
items.put("fileLevelBarrier", new ConfigItem<>("fileLevelBarrier", "fb", (input) -> Level.parse(input), Level.CONFIG));
|
||||||
items.put("consoleLevelBarrier", new ConfigItem<>("consoleLevelBarrier", "cb", (input) -> Level.parse(input), Level.FINEST));
|
items.put("consoleLevelBarrier", new ConfigItem<>("consoleLevelBarrier", "cb", (input) -> Level.parse(input), Level.FINEST));
|
||||||
}
|
}
|
||||||
@ -130,13 +131,13 @@ public class Config {
|
|||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
*/
|
*/
|
||||||
public File getHomeDirectory() { return (File) items.get("homeDirectory").get(); }
|
public File getHomeDirectory() { return (File) items.get("homeDirectory").get(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the minimal {@link Level} to log inside the log file
|
* @return the minimal {@link Level} to log inside the log file
|
||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
*/
|
*/
|
||||||
public Level getFileLevelBarrier() { return (Level) items.get("fileLevelBarrier").get(); }
|
public Level getFileLevelBarrier() { return (Level) items.get("fileLevelBarrier").get(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the minimal {@link Level} to log inside the console
|
* @return the minimal {@link Level} to log inside the console
|
||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
package envoy.client;
|
package envoy.client;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.*;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.ObjectInputStream;
|
|
||||||
import java.io.ObjectOutputStream;
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.xml.datatype.DatatypeConfigurationException;
|
import javax.xml.datatype.DatatypeConfigurationException;
|
||||||
@ -20,11 +12,8 @@ import envoy.client.event.EventBus;
|
|||||||
import envoy.client.event.MessageCreationEvent;
|
import envoy.client.event.MessageCreationEvent;
|
||||||
import envoy.client.util.EnvoyLog;
|
import envoy.client.util.EnvoyLog;
|
||||||
import envoy.exception.EnvoyException;
|
import envoy.exception.EnvoyException;
|
||||||
import envoy.schema.Message;
|
import envoy.schema.*;
|
||||||
import envoy.schema.Message.Metadata.MessageState;
|
import envoy.schema.Message.Metadata.MessageState;
|
||||||
import envoy.schema.ObjectFactory;
|
|
||||||
import envoy.schema.Sync;
|
|
||||||
import envoy.schema.User;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Project: <strong>envoy-client</strong><br>
|
* Project: <strong>envoy-client</strong><br>
|
||||||
@ -249,10 +238,8 @@ public class LocalDB {
|
|||||||
// Updating UserStatus of all users in LocalDB
|
// Updating UserStatus of all users in LocalDB
|
||||||
for (User user : returnSync.getUsers())
|
for (User user : returnSync.getUsers())
|
||||||
for (Chat chat : getChats())
|
for (Chat chat : getChats())
|
||||||
if (user.getID() == chat.getRecipient().getID()) {
|
if (user.getID() == chat.getRecipient().getID())
|
||||||
chat.getRecipient().setStatus(user.getStatus());
|
chat.getRecipient().setStatus(user.getStatus());
|
||||||
logger.info(chat.getRecipient().getStatus().toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
sync.getMessages().clear();
|
sync.getMessages().clear();
|
||||||
sync.getUsers().clear();
|
sync.getUsers().clear();
|
||||||
|
@ -59,7 +59,7 @@ public class Startup {
|
|||||||
System.exit(1);
|
System.exit(1);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set new logger levels loaded from config
|
// Set new logger levels loaded from config
|
||||||
EnvoyLog.setFileLevelBarrier(config.getFileLevelBarrier());
|
EnvoyLog.setFileLevelBarrier(config.getFileLevelBarrier());
|
||||||
EnvoyLog.setConsoleLevelBarrier(config.getConsoleLevelBarrier());
|
EnvoyLog.setConsoleLevelBarrier(config.getConsoleLevelBarrier());
|
||||||
|
@ -10,7 +10,7 @@ import envoy.client.Config;
|
|||||||
* Project: <strong>envoy-client</strong><br>
|
* Project: <strong>envoy-client</strong><br>
|
||||||
* File: <strong>EnvoyLogger.java</strong><br>
|
* File: <strong>EnvoyLogger.java</strong><br>
|
||||||
* Created: <strong>14 Dec 2019</strong><br>
|
* Created: <strong>14 Dec 2019</strong><br>
|
||||||
*
|
*
|
||||||
* @author Leon Hofmeister
|
* @author Leon Hofmeister
|
||||||
* @author Kai S. K. Engelbart
|
* @author Kai S. K. Engelbart
|
||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
@ -18,11 +18,18 @@ import envoy.client.Config;
|
|||||||
public class EnvoyLog {
|
public class EnvoyLog {
|
||||||
|
|
||||||
private static FileHandler fileHandler;
|
private static FileHandler fileHandler;
|
||||||
private static ConsoleHandler consoleHandler;
|
private static StreamHandler consoleHandler;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
// Remove default console handler
|
||||||
|
LogManager.getLogManager().reset();
|
||||||
|
|
||||||
|
// Configure log file
|
||||||
File logFile = new File(Config.getInstance().getHomeDirectory(), "log/envoy_user.log");
|
File logFile = new File(Config.getInstance().getHomeDirectory(), "log/envoy_user.log");
|
||||||
logFile.getParentFile().mkdirs();
|
logFile.getParentFile().mkdirs();
|
||||||
|
|
||||||
|
// Configure formatting
|
||||||
|
System.setProperty("java.util.logging.SimpleFormatter.format", "[%1$tF %1$tT] [%4$-7s] [%3$s] %5$s %n");
|
||||||
SimpleFormatter formatter = new SimpleFormatter();
|
SimpleFormatter formatter = new SimpleFormatter();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -32,7 +39,7 @@ public class EnvoyLog {
|
|||||||
} catch (SecurityException | IOException e) {
|
} catch (SecurityException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
consoleHandler = new ConsoleHandler();
|
consoleHandler = new StreamHandler(System.out, formatter);
|
||||||
consoleHandler.setLevel(Config.getInstance().getConsoleLevelBarrier());
|
consoleHandler.setLevel(Config.getInstance().getConsoleLevelBarrier());
|
||||||
consoleHandler.setFormatter(formatter);
|
consoleHandler.setFormatter(formatter);
|
||||||
}
|
}
|
||||||
@ -41,7 +48,7 @@ public class EnvoyLog {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a {@link Logger} with a specified name
|
* Creates a {@link Logger} with a specified name
|
||||||
*
|
*
|
||||||
* @param name the name of the {@link Logger} to create
|
* @param name the name of the {@link Logger} to create
|
||||||
* @return the created {@link Logger}
|
* @return the created {@link Logger}
|
||||||
* @since Envoy v0.2-alpha
|
* @since Envoy v0.2-alpha
|
||||||
|
Reference in New Issue
Block a user