diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java
index 4792b02..f82b4cc 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java
@@ -40,6 +40,12 @@ public class Simulator {
public static final void simulate(Profile profile, long time, int users, String logPath) {
Collection<Thread> threads = new ArrayList<>();
List<List<List<JsonObject>>> logs = new ArrayList<>();
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ @Override
+ public void run() {
+ writeLog(logPath, logs);
+ }
+ });
for (int i = 0; i < users; i++) {
Thread thread = new Thread(() -> {
profile.run(time);
@@ -56,7 +62,12 @@ public class Simulator {
LOGGER.log(Level.SEVERE, null, ex);
}
});
+ writeLog(logPath, logs);
+ }
+
+ private static void writeLog(String logPath, List<List<List<JsonObject>>> logs) {
if (logPath != null) {
+ LOGGER.log(Level.INFO, "writing log");
Gson gson = new GsonBuilder().setPrettyPrinting().create();
try (Writer writer = new FileWriter(logPath)) {
gson.toJson(logs, writer);