From 80c0e0bb30cc75d9acabe10f481aa8ca4a01797b Mon Sep 17 00:00:00 2001 From: erius Date: Wed, 11 May 2022 00:16:38 +0300 Subject: [PATCH] updated logger formatting --- .../src/main/java/client/Lab5Client.java | 6 +- .../common/parser/ConnectionProperties.class | Bin 3881 -> 5442 bytes .../compileJava/previous-compilation-data.bin | Bin 7203 -> 7240 bytes .../common/parser/ConnectionProperties.java | 2 +- .../main/java/common/util/UtilFunctions.java | 30 ++++++ .../classes/java/main/server/Lab5Server.class | Bin 1677 -> 1717 bytes Lab5Server/build/libs/Lab5Server-2.0.jar | Bin 42365 -> 0 bytes Lab5Server/build/libs/lab5.xml | 94 ++++++++++++++++++ .../src/main/java/server/Lab5Server.java | 9 +- 9 files changed, 134 insertions(+), 7 deletions(-) delete mode 100644 Lab5Server/build/libs/Lab5Server-2.0.jar diff --git a/Lab5Client/src/main/java/client/Lab5Client.java b/Lab5Client/src/main/java/client/Lab5Client.java index 20e45ff..b4b36fc 100644 --- a/Lab5Client/src/main/java/client/Lab5Client.java +++ b/Lab5Client/src/main/java/client/Lab5Client.java @@ -4,17 +4,19 @@ import client.commandline.CommandLineHandler; import client.commandline.pdcommands.PeopleDatabaseCommands; import common.collection.Database; import common.collection.PeopleDatabase; +import common.util.UtilFunctions; import java.util.logging.Logger; public class Lab5Client { + public final static Logger LOGGER = UtilFunctions.getLogger(Lab5Client.class, "client"); + public static void main(String[] args) { - Logger logger = Logger.getLogger("Lab5Client"); CommandLineHandler cmd = CommandLineHandler.getInstance(); PeopleDatabaseCommands.registerDatabaseCommands(); - PeopleDatabase peopleDatabase = new PeopleDatabase(logger); + PeopleDatabase peopleDatabase = new PeopleDatabase(LOGGER); try { peopleDatabase.load(); } catch (Database.DatabaseLoadFailedException e) { diff --git a/Lab5Core/build/classes/java/main/common/parser/ConnectionProperties.class b/Lab5Core/build/classes/java/main/common/parser/ConnectionProperties.class index 5f86f73f0b3c245d9dedaa8550fabee11128554f..c9b1f6ca8544cd90a57c868d155e3de1be4c9763 100644 GIT binary patch literal 5442 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 delta 3888 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 clazz, String mainLoggerName) { + changeLoggerFormat(mainLoggerName); + return Logger.getLogger(clazz.getName()); + } + + private static void changeLoggerFormat(String mainLoggerName) { + Logger mainLogger = Logger.getLogger(mainLoggerName); + mainLogger.setUseParentHandlers(false); + ConsoleHandler handler = new ConsoleHandler(); + handler.setFormatter(new SimpleFormatter() { + private static final String format = "[%1$tF %1$tT] [%s] %3$s %n"; + + @Override + public synchronized String format(LogRecord record) { + return String.format(format, + new Date(record.getMillis()), + record.getLevel().getLocalizedName(), + record.getMessage() + ); + } + }); + mainLogger.addHandler(handler); + } } diff --git a/Lab5Server/build/classes/java/main/server/Lab5Server.class b/Lab5Server/build/classes/java/main/server/Lab5Server.class index 8dbd6ee38d2ed8bd7bf9e54f524d617262bae82e..725fef653e5d896516d111e4fe960370213b2661 100644 GIT binary patch delta 812 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 + + + Gena + + 5.0 + 6.0 + + 2022-05-10 + 124 + 231323232 + BLACK + JAPAN + + 2.0 + 3.0 + 4 + Tokyo + + + + Gena + + 5.0 + 6.0 + + 2022-05-10 + 124 + 231323232 + BLACK + JAPAN + + 2.0 + 3.0 + 4 + Tokyo + + + + Sasha + + 3.4 + -2.0 + + 2022-05-10 + 175 + 2312131231 + BROWN + JAPAN + + 2323.0 + 443.0 + 2 + Tokyo + + + + Sasha + + 3.4 + -2.0 + + 2022-05-10 + 175 + 2312131231 + BROWN + JAPAN + + 2323.0 + 443.0 + 2 + Tokyo + + + + wasd + + 2.0 + 3.0 + + 2022-05-10 + 2 + 321312312 + BLACK + CHINA + + 2.0 + 2.0 + 2 + wasd + + + 2022-05-10 + diff --git a/Lab5Server/src/main/java/server/Lab5Server.java b/Lab5Server/src/main/java/server/Lab5Server.java index 844b2c7..51680d2 100644 --- a/Lab5Server/src/main/java/server/Lab5Server.java +++ b/Lab5Server/src/main/java/server/Lab5Server.java @@ -3,24 +3,25 @@ package server; import common.collection.Database; import common.collection.PeopleDatabase; import common.parser.ConnectionProperties; +import common.util.UtilFunctions; import server.net.UDPServer; import java.util.logging.Logger; public class Lab5Server { - public final static Logger logger = Logger.getLogger("Lab5Server"); - + public final static Logger LOGGER = UtilFunctions.getLogger(Lab5Server.class, "server"); public static void main(String[] args) { - PeopleDatabase peopleDatabase = new PeopleDatabase(logger); + LOGGER.info("wasd"); + PeopleDatabase peopleDatabase = new PeopleDatabase(LOGGER); try { peopleDatabase.load(); } catch (Database.DatabaseLoadFailedException e) { System.out.println(e.getMessage()); System.exit(-1); } - UDPServer udp = new UDPServer(ConnectionProperties.getPort(), logger); + UDPServer udp = new UDPServer(ConnectionProperties.getPort(), LOGGER); if (!udp.connect()) System.exit(-1); while (true) udp.receive(peopleDatabase);