From 0ca445c265b94df357767cb60eda3c0c809a445c Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Mon, 4 May 2026 23:15:25 +0300 Subject: [PATCH 1/5] 1 --- .gitignore | 1 + logback.xml | 22 ++++++++++++ pom.xml | 12 +++++++ src/main/java/mate/academy/Main.java | 9 ++++- .../service/AuthenticationServiceImpl.java | 34 ++++++++++++------- .../academy/service/OrderServiceImpl.java | 14 ++++---- 6 files changed, 72 insertions(+), 20 deletions(-) create mode 100644 logback.xml diff --git a/.gitignore b/.gitignore index 6366460f0..9c524174a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea/* *.iml target/* +*.log diff --git a/logback.xml b/logback.xml new file mode 100644 index 000000000..874459c73 --- /dev/null +++ b/logback.xml @@ -0,0 +1,22 @@ + + + + + %d{HH:mm:ss} %-5level %logger{36} - %msg%n + + + + + app.log + true + + %d %-5level %logger - %msg%n + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index d524faa08..9b47d1a14 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,18 @@ 4.12 test + + + org.slf4j + slf4j-api + 2.0.13 + + + + ch.qos.logback + logback-classic + 1.5.6 + diff --git a/src/main/java/mate/academy/Main.java b/src/main/java/mate/academy/Main.java index 085758fbf..04758e8dd 100644 --- a/src/main/java/mate/academy/Main.java +++ b/src/main/java/mate/academy/Main.java @@ -7,16 +7,23 @@ import mate.academy.service.OrderService; import mate.academy.service.OrderServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class Main { + + private static final Logger logger = LoggerFactory.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("Authentication failed", e); return; } + OrderService orderService = new OrderServiceImpl(); orderService.completeOrder(user.getUserId()); } diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index f9fe83b70..d44965248 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -1,23 +1,31 @@ package mate.academy.service; -import mate.academy.exception.AuthenticationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import mate.academy.model.User; + public class AuthenticationServiceImpl implements AuthenticationService { + private static final Logger logger = + LoggerFactory.getLogger(AuthenticationServiceImpl.class); + @Override - public User login(String login, String password) throws AuthenticationException { - //TODO: add corresponding log message about method login was called - User user = findByLogin(login); - if (!user.getPassword().equals(password)) { - throw new AuthenticationException("Username or password are incorrect"); + public User login(String login, String password) { + logger.trace("Enter login method: login={}", login); + + if (login == null || password == null) { + logger.error("Login or password is null"); + throw new IllegalArgumentException("Login/password is null"); + } + + logger.debug("Checking credentials for user={}", login); + if ("admin".equals(login) && "1234".equals(password)) { + logger.info("User logged in successfully: {}", login); + return new User(login, password); } - return user; - } - private User findByLogin(String login) { - User user = new User(login, "1234"); - // this user identifier should be set by DB. We will use dummy data for this example - user.setUserId(2L); - return user; + logger.warn("Login failed for user={}", login); + throw new RuntimeException("Invalid credentials"); } } diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index eeabe1555..87c83e409 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -2,29 +2,31 @@ import java.math.BigDecimal; import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import mate.academy.model.Order; import mate.academy.model.Product; public class OrderServiceImpl implements OrderService { + private static final Logger logger = LoggerFactory.getLogger(OrderServiceImpl.class); + @Override public Order completeOrder(Long userId) { - // TODO: add log message about 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 - // For test purpose we simplify this and return dummy data + logger.info("Order was created successfully. OrderId: {}", order.getOrderId()); 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("Products were fetched successfully for userId: {}", userId); return products; } } From 67af3873aa725a53f5bce6f818c6a79827a6d5f7 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Mon, 4 May 2026 23:20:31 +0300 Subject: [PATCH 2/5] 2 --- src/main/java/mate/academy/Main.java | 4 +--- .../mate/academy/service/AuthenticationServiceImpl.java | 9 ++------- src/main/java/mate/academy/service/OrderServiceImpl.java | 5 ++--- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/java/mate/academy/Main.java b/src/main/java/mate/academy/Main.java index 04758e8dd..3fb3d393b 100644 --- a/src/main/java/mate/academy/Main.java +++ b/src/main/java/mate/academy/Main.java @@ -6,13 +6,12 @@ import mate.academy.service.AuthenticationServiceImpl; import mate.academy.service.OrderService; import mate.academy.service.OrderServiceImpl; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Main { - private static final Logger logger = LoggerFactory.getLogger(Main.class); + public static void main(String[] args) { AuthenticationService authenticationService = new AuthenticationServiceImpl(); User user; @@ -23,7 +22,6 @@ public static void main(String[] args) { logger.error("Authentication failed", e); return; } - OrderService orderService = new OrderServiceImpl(); orderService.completeOrder(user.getUserId()); } diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index d44965248..7d5161052 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -1,30 +1,25 @@ package mate.academy.service; +import mate.academy.model.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import mate.academy.model.User; - - public class AuthenticationServiceImpl implements AuthenticationService { - private static final Logger logger = + private static final Logger logger = LoggerFactory.getLogger(AuthenticationServiceImpl.class); @Override public User login(String login, String password) { logger.trace("Enter login method: login={}", login); - if (login == null || password == null) { logger.error("Login or password is null"); throw new IllegalArgumentException("Login/password is null"); } - logger.debug("Checking credentials for user={}", login); if ("admin".equals(login) && "1234".equals(password)) { logger.info("User logged in successfully: {}", login); return new User(login, password); } - logger.warn("Login failed for user={}", login); throw new RuntimeException("Invalid credentials"); } diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index 87c83e409..ae19b2876 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -1,13 +1,12 @@ package mate.academy.service; +import mate.academy.model.Order; +import mate.academy.model.Product; import java.math.BigDecimal; import java.util.List; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import mate.academy.model.Order; -import mate.academy.model.Product; public class OrderServiceImpl implements OrderService { private static final Logger logger = LoggerFactory.getLogger(OrderServiceImpl.class); From 39a1cd8a3da87b1216ec744ca4eb5bd8bc85c1aa Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Mon, 4 May 2026 23:25:18 +0300 Subject: [PATCH 3/5] 3 --- logback.xml => src/main/resources/logback.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename logback.xml => src/main/resources/logback.xml (100%) diff --git a/logback.xml b/src/main/resources/logback.xml similarity index 100% rename from logback.xml rename to src/main/resources/logback.xml From d37081a9814b099e4e7246627efbf91326f15a3d Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Mon, 4 May 2026 23:27:27 +0300 Subject: [PATCH 4/5] 4 --- src/main/java/mate/academy/service/OrderServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/mate/academy/service/OrderServiceImpl.java b/src/main/java/mate/academy/service/OrderServiceImpl.java index ae19b2876..b6fab9f21 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -1,13 +1,12 @@ package mate.academy.service; -import mate.academy.model.Order; -import mate.academy.model.Product; import java.math.BigDecimal; import java.util.List; +import mate.academy.model.Order; +import mate.academy.model.Product; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - public class OrderServiceImpl implements OrderService { private static final Logger logger = LoggerFactory.getLogger(OrderServiceImpl.class); From b4449a1fa8a8ecead818915d6c217c5c0145ac73 Mon Sep 17 00:00:00 2001 From: VadimN637 Date: Mon, 4 May 2026 23:44:55 +0300 Subject: [PATCH 5/5] 5 --- .../java/mate/academy/service/AuthenticationServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index 7d5161052..188cb2a8b 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -24,3 +24,4 @@ public User login(String login, String password) { throw new RuntimeException("Invalid credentials"); } } +