diff --git a/logs/app.log b/logs/app.log
new file mode 100644
index 00000000..2e6abfac
--- /dev/null
+++ b/logs/app.log
@@ -0,0 +1,40 @@
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 1, counter value 20
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 1, counter value 19
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 20, counter value 19
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 20, counter value 18
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 19, counter value 18
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 19, counter value 17
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 18, counter value 17
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 18, counter value 16
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 17, counter value 16
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 17, counter value 15
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 16, counter value 15
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 16, counter value 14
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 15, counter value 14
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 15, counter value 13
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 14, counter value 13
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 14, counter value 12
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 13, counter value 12
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 13, counter value 11
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 12, counter value 11
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 12, counter value 10
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 10, counter value 10
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 10, counter value 9
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 11, counter value 9
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 11, counter value 8
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 9, counter value 8
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 9, counter value 7
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 8, counter value 7
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 8, counter value 6
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 7, counter value 6
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 7, counter value 5
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 6, counter value 5
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 6, counter value 4
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 5, counter value 4
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 5, counter value 3
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 4, counter value 3
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 4, counter value 2
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 3, counter value 2
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 3, counter value 1
+INFO core.basesyntax.Counter:18 Before decrementing, Thread # 2, counter value 1
+INFO core.basesyntax.Counter:21 After decrementing, Thread # 2, counter value 0
diff --git a/src/main/java/core/basesyntax/Counter.java b/src/main/java/core/basesyntax/Counter.java
index 4af46bd4..fc4c67e2 100644
--- a/src/main/java/core/basesyntax/Counter.java
+++ b/src/main/java/core/basesyntax/Counter.java
@@ -7,16 +7,19 @@ public class Counter {
private static final Logger logger = LogManager.getLogger(Counter.class);
private static final String MESSAGE = "%20s, Thread # %2s, counter value %2d";
private int value;
+ private final Object monitor = new Object();
public Counter(int value) {
this.value = value;
}
public void decreaseValue() {
- logger.info(String.format(MESSAGE,
- "Before decrementing", Thread.currentThread().getName(), value));
- value--;
- logger.info(String.format(MESSAGE,
- "After decrementing", Thread.currentThread().getName(), value));
+ synchronized (monitor) {
+ logger.info(String.format(MESSAGE,
+ "Before decrementing", Thread.currentThread().getName(), value));
+ value--;
+ logger.info(String.format(MESSAGE,
+ "After decrementing", Thread.currentThread().getName(), value));
+ }
}
}
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 8e507175..9eec7a77 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -4,7 +4,7 @@
-
+
%p %c:%L %m%n