From 6d8ec5b7f500f2f2dc33319320ab83d46926b817 Mon Sep 17 00:00:00 2001 From: bouclyma Date: Thu, 5 Dec 2024 10:29:40 +0100 Subject: [PATCH] feat(graphique): Ajout logger, logging.properties, fonction initialize --- chat/src/main/java/module-info.java | 1 + .../main/java/rtgre/chat/ChatApplication.java | 18 +++++++++++++ .../main/java/rtgre/chat/ChatController.java | 11 +++++++- .../main/resources/rtgre/chat/chat-view.fxml | 2 +- .../resources/rtgre/chat/logging.properties | 25 +++++++++++++++++++ 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 chat/src/main/resources/rtgre/chat/logging.properties diff --git a/chat/src/main/java/module-info.java b/chat/src/main/java/module-info.java index 8c040f9..34c52c5 100644 --- a/chat/src/main/java/module-info.java +++ b/chat/src/main/java/module-info.java @@ -1,6 +1,7 @@ module rtgre.chat { requires javafx.controls; requires javafx.fxml; + requires java.logging; opens rtgre.chat to javafx.fxml; diff --git a/chat/src/main/java/rtgre/chat/ChatApplication.java b/chat/src/main/java/rtgre/chat/ChatApplication.java index e9352c5..70ea41f 100644 --- a/chat/src/main/java/rtgre/chat/ChatApplication.java +++ b/chat/src/main/java/rtgre/chat/ChatApplication.java @@ -6,8 +6,26 @@ import javafx.scene.Scene; import javafx.stage.Stage; import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Level; +import java.util.logging.LogManager; +import java.util.logging.Logger; public class ChatApplication extends Application { + public static final Logger LOGGER = Logger.getLogger(ChatApplication.class.getCanonicalName()); + public class EssaiLogger { + /* . . . */ + static { + try { + InputStream is = EssaiLogger.class.getClassLoader() + .getResource("logging.properties").openStream(); + LogManager.getLogManager().readConfiguration(is); + } catch (Exception e) { + LOGGER.log(Level.INFO, "Cannot read configuration file", e); + } + } + /* . . . */ + } @Override public void start(Stage stage) throws IOException { FXMLLoader fxmlLoader = new FXMLLoader(ChatApplication.class.getResource("chat-view.fxml")); diff --git a/chat/src/main/java/rtgre/chat/ChatController.java b/chat/src/main/java/rtgre/chat/ChatController.java index 7b888d1..3c4f5ba 100644 --- a/chat/src/main/java/rtgre/chat/ChatController.java +++ b/chat/src/main/java/rtgre/chat/ChatController.java @@ -1,11 +1,16 @@ package rtgre.chat; import javafx.fxml.FXML; +import javafx.fxml.Initializable; import javafx.scene.control.*; import javafx.scene.image.ImageView; -public class ChatController { +import java.net.URL; +import java.util.ResourceBundle; +import java.util.logging.Logger; +import static rtgre.chat.ChatApplication.LOGGER; +public class ChatController implements Initializable { public MenuItem hostAddMenuItem; public MenuItem avatarMenuItem; @@ -20,4 +25,8 @@ public class ChatController { public ListView contactListView; + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + LOGGER.info("Initialisation de l'interface graphique"); + } } \ No newline at end of file diff --git a/chat/src/main/resources/rtgre/chat/chat-view.fxml b/chat/src/main/resources/rtgre/chat/chat-view.fxml index c04e461..1346863 100644 --- a/chat/src/main/resources/rtgre/chat/chat-view.fxml +++ b/chat/src/main/resources/rtgre/chat/chat-view.fxml @@ -19,7 +19,7 @@ - + diff --git a/chat/src/main/resources/rtgre/chat/logging.properties b/chat/src/main/resources/rtgre/chat/logging.properties new file mode 100644 index 0000000..4ba3400 --- /dev/null +++ b/chat/src/main/resources/rtgre/chat/logging.properties @@ -0,0 +1,25 @@ +# Les logs sont envoyés sur la console *et* dans un fichier +handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler + +# Configuration par défaut pour ConsoleHandler +# java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter + +# Configuration de FileHandler. Par défaut, +# java.util.logging.FileHandler.formatter=java.util.logging.XMLFormater +java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter + +# Nom du fichier de logs +java.util.logging.FileHandler.pattern=out/java%u.log + +# Format de logs plus compact sur 1 seule ligne +java.util.logging.SimpleFormatter.format=%1$tF %1$tT.%1$tL | %4$-7s | %2$s | %5$s %6$s%n + +# niveaux : OFF / SEVERE / WARNING / INFO / CONFIG / FINE / FINER / FINEST / ALL +# Niveau global minimum pour les logs +.level=ALL + +# Niveau minimum pour les logs sur la console +java.util.logging.ConsoleHandler.level=FINE + +# Niveau minimum pour les logs dans le fichier +java.util.logging.FileHandler.level=ALL \ No newline at end of file