From c98c3022ecec18d7227bd4ed98d3e3b90a9bcd4c Mon Sep 17 00:00:00 2001 From: IlonaChupa Date: Thu, 26 Mar 2026 18:40:10 +0200 Subject: [PATCH 1/4] done --- .gitignore | 2 ++ pom.xml | 11 ++++++++ .../service/AuthenticationServiceImpl.java | 5 ++++ .../academy/service/OrderServiceImpl.java | 5 ++++ src/main/resources/ log4j2.xml | 26 +++++++++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 src/main/resources/ log4j2.xml diff --git a/.gitignore b/.gitignore index 6366460f0..d49006962 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ .idea/* *.iml target/* +*.log + diff --git a/pom.xml b/pom.xml index d524faa08..d13f776fc 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,17 @@ 4.12 test + + + org.apache.logging.log4j + log4j-api + 2.23.1 + + + org.apache.logging.log4j + log4j-core + 2.23.1 + diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index f9fe83b70..7995a5c64 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -2,11 +2,16 @@ import mate.academy.exception.AuthenticationException; import mate.academy.model.User; +import org.apache.logging.log4j.Logger; + +import static org.apache.logging.log4j.LogManager.getLogger; public class AuthenticationServiceImpl implements AuthenticationService { + Logger logger = 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"); User user = findByLogin(login); if (!user.getPassword().equals(password)) { throw new AuthenticationException("Username or password are incorrect"); diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index eeabe1555..58dc840f5 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -4,11 +4,15 @@ 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 { + Logger logger = LogManager.getLogger(); @Override public Order completeOrder(Long userId) { // TODO: add log message about method completeOrder was called + logger.info("Method completeOrder was called"); 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 +29,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("Successfully 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..6ff074356 --- /dev/null +++ b/src/main/resources/ log4j2.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 8152ab6ec8c9b01ea5589b61059d3403df84a1a9 Mon Sep 17 00:00:00 2001 From: IlonaChupa Date: Fri, 27 Mar 2026 11:06:07 +0200 Subject: [PATCH 2/4] done --- .../service/AuthenticationServiceImpl.java | 15 ++++++++++++--- .../academy/service/OrderServiceImpl.java | 19 +++++++++++-------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index 7995a5c64..2291aaf7a 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -2,16 +2,17 @@ import mate.academy.exception.AuthenticationException; import mate.academy.model.User; +import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import static org.apache.logging.log4j.LogManager.getLogger; public class AuthenticationServiceImpl implements AuthenticationService { - Logger logger = getLogger(AuthenticationServiceImpl.class); + private 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"); + logger.info("Method login was called with login: " + login + ""); User user = findByLogin(login); if (!user.getPassword().equals(password)) { throw new AuthenticationException("Username or password are incorrect"); @@ -25,4 +26,12 @@ private User findByLogin(String login) { user.setUserId(2L); return user; } + + public void setLogger(Logger logger) { + this.logger = logger; + } + + public Logger getLogger() { + return logger; + } } diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index 58dc840f5..f4861f522 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -8,28 +8,31 @@ import org.apache.logging.log4j.Logger; public class OrderServiceImpl implements OrderService { - Logger logger = LogManager.getLogger(); + private 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"); + logger.info("Method completeOrder was called with 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 - // For test purpose we simplify this and return dummy data order.setOrderId(1L); return order; } private List getAllProductsFromShoppingCart(Long userId) { - // NOTE: In production ready code this method should fetch data from DB - // For test purpose we simplify this method and return dummy data Product iphone = new Product("iPhone X", BigDecimal.valueOf(1199)); 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("Successfully fetched data from DB"); return products; } + + public void setLogger(Logger logger) { + this.logger = logger; + } + + public Logger getLogger() { + return logger; + } } From 38c50a0dea40283b61195cf370952e29b8cc0da8 Mon Sep 17 00:00:00 2001 From: IlonaChupa Date: Fri, 27 Mar 2026 11:07:53 +0200 Subject: [PATCH 3/4] done --- .../java/mate/academy/service/AuthenticationServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index 2291aaf7a..a4e000a4c 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -5,8 +5,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import static org.apache.logging.log4j.LogManager.getLogger; - public class AuthenticationServiceImpl implements AuthenticationService { private Logger logger = LogManager.getLogger(AuthenticationServiceImpl.class); From 8a1d4383156963c004968c7bd6cd16d0cbf68d05 Mon Sep 17 00:00:00 2001 From: IlonaChupa Date: Fri, 27 Mar 2026 11:10:56 +0200 Subject: [PATCH 4/4] done --- .../java/mate/academy/service/AuthenticationServiceImpl.java | 3 ++- src/main/java/mate/academy/service/OrderServiceImpl.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index a4e000a4c..05f770359 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -6,11 +6,12 @@ import org.apache.logging.log4j.Logger; public class AuthenticationServiceImpl implements AuthenticationService { + private Logger logger = LogManager.getLogger(AuthenticationServiceImpl.class); @Override public User login(String login, String password) throws AuthenticationException { - logger.info("Method login was called with login: " + login + ""); + logger.info("Method login was called. Params: login={}", login); User user = findByLogin(login); if (!user.getPassword().equals(password)) { throw new AuthenticationException("Username or password are incorrect"); diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index f4861f522..f9d231238 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -8,11 +8,12 @@ import org.apache.logging.log4j.Logger; public class OrderServiceImpl implements OrderService { + private Logger logger = LogManager.getLogger(OrderServiceImpl.class); @Override public Order completeOrder(Long userId) { - logger.info("Method completeOrder was called with userId: " + userId + ""); + logger.info("Method completeOrder was called with userId: {}", userId); List products = getAllProductsFromShoppingCart(userId); Order order = new Order(products, userId); order.setOrderId(1L); @@ -24,7 +25,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("Successfully fetched data from DB"); + logger.info("Successfully fetched data from DB for userId: {}", userId); return products; }