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;
}
}