From 13afebe65be0f09b8333d1aa85c15cca4a86516a Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 2 Oct 2023 17:45:12 +0300 Subject: [PATCH] Implemented Logging --- .../org/lumijiez/data/DataDeserializer.java | 4 +- .../lumijiez/gui/StudentManagementGUI.java | 2 + .../org/lumijiez/gui/util/FilePicker.java | 1 + .../org/lumijiez/managers/LogManager.java | 51 +++++++++++++++++++ .../org/lumijiez/managers/Supervisor.java | 17 +++++++ 5 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 Lab2/src/main/java/org/lumijiez/managers/LogManager.java diff --git a/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java b/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java index c1998a2..4334745 100644 --- a/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java +++ b/Lab2/src/main/java/org/lumijiez/data/DataDeserializer.java @@ -15,8 +15,8 @@ public class DataDeserializer { try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(serializedFile))) { manager = (Supervisor) ois.readObject(); System.out.println("Supervisor object deserialized successfully."); - } catch (IOException | ClassNotFoundException e) { - e.printStackTrace(); + } catch (ClassNotFoundException | IOException e) { + System.err.println("Error!"); } } else { System.out.println("Serialized file 'manager.ser' does not exist."); diff --git a/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java b/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java index ae01f19..53169af 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java +++ b/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java @@ -231,6 +231,8 @@ public class StudentManagementGUI extends JFrame { if (result == JOptionPane.YES_OPTION) { DataSerializer.serialize(sv); + sv.getLogger().logOperation("Died!"); + sv.getLogger().close(); dispose(); } } diff --git a/Lab2/src/main/java/org/lumijiez/gui/util/FilePicker.java b/Lab2/src/main/java/org/lumijiez/gui/util/FilePicker.java index a638239..e73e01f 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/util/FilePicker.java +++ b/Lab2/src/main/java/org/lumijiez/gui/util/FilePicker.java @@ -195,6 +195,7 @@ public class FilePicker extends JFrame { throw new RuntimeException(ex); } DisplayerManager.displayStudents(); + this.dispose(); } } diff --git a/Lab2/src/main/java/org/lumijiez/managers/LogManager.java b/Lab2/src/main/java/org/lumijiez/managers/LogManager.java new file mode 100644 index 0000000..a4f469c --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/managers/LogManager.java @@ -0,0 +1,51 @@ +package org.lumijiez.managers; + + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class LogManager { + + private transient BufferedWriter writer; + + private void init() { + BufferedWriter writerTemp; + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss"); + String fileHandle = "log-" + currentDateTime.format(formatter) + ".txt"; + try { + FileWriter fwriter = new FileWriter(fileHandle); + writerTemp = new BufferedWriter(fwriter); + } catch (IOException e) { + System.err.println("Error!"); + writerTemp = null; + } + this.writer = writerTemp; + } + + public void logOperation(String msg) { + if (writer == null) init(); + LocalDateTime currentDateTime = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss |"); + try { + writer.write(currentDateTime.format(formatter) + msg); + writer.flush(); + System.out.println(msg); + writer.newLine(); + } catch (IOException e) { + System.err.println("Error!"); + } + } + + public void close() { + try { + this.writer.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } +} diff --git a/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java b/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java index 8916710..9ab8770 100644 --- a/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java +++ b/Lab2/src/main/java/org/lumijiez/managers/Supervisor.java @@ -9,14 +9,19 @@ import java.io.Serializable; import java.util.Date; public class Supervisor implements Serializable { + private final FacultyManager fm; + private final LogManager logger; + public Supervisor() { this.fm = new FacultyManager(); + this.logger = new LogManager(); } public void addFaculty(Faculty faculty) { getFm().addFaculty(faculty); + logger.logOperation("Faculty added: " + faculty.getName()); } public void deleteFaculty(Faculty faculty) { @@ -27,10 +32,12 @@ public class Supervisor implements Serializable { getFm().getGm().getSm().deleteStudent(st); } } + logger.logOperation("Faculty deleted : " + faculty.getName()); } public void addGrade(Student student, Grade grade) { student.addGrade(grade); + logger.logOperation("Student graded: " + student.getName() + " " + grade.getSubject().getName() + " " + grade.getGrade()); } public void editGroup(Group group, String name, Faculty faculty) { @@ -39,6 +46,7 @@ public class Supervisor implements Serializable { group.setFaculty(faculty); faculty.addGroup(group); oldFac.getGroups().remove(group); + logger.logOperation("Group edited: " + group.getName()); } public void deleteGroup(Group group) { @@ -46,11 +54,13 @@ public class Supervisor implements Serializable { for (Student st : group.getStudents()) { getFm().getGm().getSm().deleteStudent(st); } + logger.logOperation("Group deleted: " + group.getName()); } public void addStudent(String name, String surname, String email, Group group, Faculty faculty, Date birth, Date enrol) { Student newStudent = new Student(name, surname, email, group, faculty, birth, enrol); getFm().getGm().getSm().addStudent(newStudent); + logger.logOperation("Student added: " + newStudent.getFullname()); } public void editStudent(Student student, String name, String surname, String email, Group group, Faculty faculty, Date birth, Date enrol) { @@ -64,17 +74,20 @@ public class Supervisor implements Serializable { student.setFaculty(faculty); student.setDateOfBirth(birth); student.setEnrollmentDate(enrol); + logger.logOperation("Student edited: " + student.getFullname()); } public void addGroup(Group group, Faculty faculty) { group.setFaculty(faculty); faculty.addGroup(group); getFm().getGm().addGroup(group); + logger.logOperation("Group added: " + group.getName()); } public void deleteStudent(Student st) { st.getGroup().deleteStudent(st); getFm().getGm().getSm().deleteStudent(st); + logger.logOperation("Student deleted: " + st.getFullname()); } public Faculty getFacultyByName(String facultyName) { @@ -97,4 +110,8 @@ public class Supervisor implements Serializable { return fm; } + public LogManager getLogger() { + return this.logger; + } + }