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/log4j2.xml b/log4j2.xml new file mode 100644 index 000000000..2654cce10 --- /dev/null +++ b/log4j2.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index d524faa08..20f74ca56 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,11 @@ 4.12 test + + org.apache.logging.log4j + log4j-api + 2.23.1 + diff --git a/src/main/java/mate/academy/exception/AuthenticationException.java b/src/main/java/mate/academy/exception/AuthenticationException.java index dc50e8bf7..5264f8a00 100644 --- a/src/main/java/mate/academy/exception/AuthenticationException.java +++ b/src/main/java/mate/academy/exception/AuthenticationException.java @@ -1,8 +1,12 @@ package mate.academy.exception; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + public class AuthenticationException extends Exception { + private static final Logger logger = LogManager.getLogger(AuthenticationException.class); public AuthenticationException(String message) { - super(message); + logger.error(message); } } diff --git a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java index f9fe83b70..22cb665ea 100644 --- a/src/main/java/mate/academy/service/AuthenticationServiceImpl.java +++ b/src/main/java/mate/academy/service/AuthenticationServiceImpl.java @@ -2,14 +2,17 @@ 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 User user = findByLogin(login); if (!user.getPassword().equals(password)) { - throw new AuthenticationException("Username or password are incorrect"); + logger.error("Login or password are incorrect. login={}", 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..f5f7f836e 100644 --- a/src/main/java/mate/academy/service/OrderServiceImpl.java +++ b/src/main/java/mate/academy/service/OrderServiceImpl.java @@ -4,16 +4,21 @@ 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 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); + logger.info("Method completeOrder was called. Params: products={}, userId={}", + products, userId); return order; } @@ -24,7 +29,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); - // TODO: add log message about successful fetched data from DB + logger.info("Data from DB is fetched successful. Params: userId={}", userId); return products; } }