From fdd818e7b7a73a333831a4cf4e4331c20c8713d9 Mon Sep 17 00:00:00 2001 From: Yelyzaveta Korniienkova Date: Mon, 6 Apr 2026 16:15:51 +0200 Subject: [PATCH 1/5] Added Logger --- pom.xml | 14 ++++++++++++ src/main/java/mate/academy/Main.java | 5 ++++- .../service/AuthenticationServiceImpl.java | 7 +++++- .../academy/service/OrderServiceImpl.java | 6 +++++ src/main/resources/log4j2.xml | 22 +++++++++++++++++++ 5 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/log4j2.xml diff --git a/pom.xml b/pom.xml index d524faa08..e251a3e23 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,20 @@ 4.12 test + + + + org.apache.logging.log4j + log4j-core + 2.22.0 + compile + + + + org.apache.logging.log4j + log4j-api + 2.22.0 + diff --git a/src/main/java/mate/academy/Main.java b/src/main/java/mate/academy/Main.java index 085758fbf..a9d5cda8a 100644 --- a/src/main/java/mate/academy/Main.java +++ b/src/main/java/mate/academy/Main.java @@ -6,15 +6,18 @@ import mate.academy.service.AuthenticationServiceImpl; import mate.academy.service.OrderService; import mate.academy.service.OrderServiceImpl; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; public class Main { + private static final Logger logger = LogManager.getLogger(Main.class); public static void main(String[] args) { AuthenticationService authenticationService = new AuthenticationServiceImpl(); User user; try { user = authenticationService.login("bob", "1234"); } catch (AuthenticationException e) { - e.printStackTrace(); + logger.error("Wrong password"); return; } OrderService orderService = new OrderServiceImpl(); diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index f9fe83b70..5ee952e23 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -2,14 +2,19 @@ import mate.academy.exception.AuthenticationException; import mate.academy.model.User; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; public class AuthenticationServiceImpl implements AuthenticationService { + private static final Logger logger = LogManager.getLogger(AuthenticationServiceImpl.class); + @Override public User login(String login, String password) throws AuthenticationException { //TODO: add corresponding log message about method login was called + logger.info("Method login was called for login:{}", login); User user = findByLogin(login); if (!user.getPassword().equals(password)) { - throw new AuthenticationException("Username or password are incorrect"); + logger.warn("Username or password are incorrect for user: {}", login); } return user; } diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index eeabe1555..5f8165574 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -4,11 +4,16 @@ import java.util.List; import mate.academy.model.Order; import mate.academy.model.Product; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; public class OrderServiceImpl implements OrderService { + private static final Logger logger = LogManager.getLogger(OrderServiceImpl.class); + @Override public Order completeOrder(Long userId) { // TODO: add log message about method completeOrder was called + logger.info("Method completeOrder was called for userId:{}", userId); List products = getAllProductsFromShoppingCart(userId); Order order = new Order(products, userId); // NOTE: In production ready code this order identifier should be generated by DB @@ -25,6 +30,7 @@ private List getAllProductsFromShoppingCart(Long userId) { Product xiaomi = new Product("Xiaomi 12", BigDecimal.valueOf(499)); List products = List.of(iphone, macBook, xiaomi); // TODO: add log message about successful fetched data from DB + logger.info("Successful fetched data from DB"); return products; } } diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 000000000..d9e637d77 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,22 @@ + + + + + + + + + %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + From e9ae34e58d201bf40da6c33b827b433ca4e1cc91 Mon Sep 17 00:00:00 2001 From: Yelyzaveta Korniienkova Date: Mon, 6 Apr 2026 16:18:01 +0200 Subject: [PATCH 2/5] Fixed stylesheet --- src/main/java/mate/academy/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/mate/academy/Main.java b/src/main/java/mate/academy/Main.java index a9d5cda8a..d5147d40f 100644 --- a/src/main/java/mate/academy/Main.java +++ b/src/main/java/mate/academy/Main.java @@ -11,6 +11,7 @@ public class Main { private static final Logger logger = LogManager.getLogger(Main.class); + public static void main(String[] args) { AuthenticationService authenticationService = new AuthenticationServiceImpl(); User user; From 8803eb929c97f7b3caafa157c1887f314c4b400e Mon Sep 17 00:00:00 2001 From: Yelyzaveta Korniienkova Date: Mon, 6 Apr 2026 16:20:27 +0200 Subject: [PATCH 3/5] Fixed problems --- .../java/mate/academy/service/AuthenticationServiceImpl.java | 3 +-- src/main/java/mate/academy/service/OrderServiceImpl.java | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index 5ee952e23..6a5c94080 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -10,11 +10,10 @@ public class AuthenticationServiceImpl implements AuthenticationService { @Override public User login(String login, String password) throws AuthenticationException { - //TODO: add corresponding log message about method login was called logger.info("Method login was called for login:{}", login); User user = findByLogin(login); if (!user.getPassword().equals(password)) { - logger.warn("Username or password are incorrect for user: {}", login); + throw new AuthenticationException("Username or password are incorrect"); } return user; } diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index 5f8165574..1e6d12aaf 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -12,7 +12,6 @@ public class OrderServiceImpl implements OrderService { @Override public Order completeOrder(Long userId) { - // TODO: add log message about method completeOrder was called logger.info("Method completeOrder was called for userId:{}", userId); List products = getAllProductsFromShoppingCart(userId); Order order = new Order(products, userId); @@ -29,7 +28,6 @@ private List getAllProductsFromShoppingCart(Long userId) { Product macBook = new Product("MacBook Air 2020", BigDecimal.valueOf(1399)); Product xiaomi = new Product("Xiaomi 12", BigDecimal.valueOf(499)); List products = List.of(iphone, macBook, xiaomi); - // TODO: add log message about successful fetched data from DB logger.info("Successful fetched data from DB"); return products; } From 5f4f9474be73e9675800912698a11d418f2f0b4c Mon Sep 17 00:00:00 2001 From: Yelyzaveta Korniienkova Date: Mon, 6 Apr 2026 16:22:00 +0200 Subject: [PATCH 4/5] Fixed problems --- src/main/java/mate/academy/service/OrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index 1e6d12aaf..01e00a1c3 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -28,7 +28,7 @@ private List getAllProductsFromShoppingCart(Long userId) { Product macBook = new Product("MacBook Air 2020", BigDecimal.valueOf(1399)); Product xiaomi = new Product("Xiaomi 12", BigDecimal.valueOf(499)); List products = List.of(iphone, macBook, xiaomi); - logger.info("Successful fetched data from DB"); + logger.info("Successful fetched data from DB for user with userId:{}",userId); return products; } } From a02ad056df8a9c0c987f424cd454b12900c7e0c7 Mon Sep 17 00:00:00 2001 From: Yelyzaveta Korniienkova Date: Mon, 6 Apr 2026 16:33:54 +0200 Subject: [PATCH 5/5] Fixed problems --- src/main/java/mate/academy/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/mate/academy/Main.java b/src/main/java/mate/academy/Main.java index d5147d40f..6bc252090 100644 --- a/src/main/java/mate/academy/Main.java +++ b/src/main/java/mate/academy/Main.java @@ -18,7 +18,7 @@ public static void main(String[] args) { try { user = authenticationService.login("bob", "1234"); } catch (AuthenticationException e) { - logger.error("Wrong password"); + logger.error("Authentication failed", e); return; } OrderService orderService = new OrderServiceImpl();