2. Логирование на log4j2, доп.задание

This commit is contained in:
prodigygirl 2022-12-04 10:46:17 +04:00
parent d9bf6a8964
commit 8157357828
5 changed files with 86 additions and 40 deletions

37
pom.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>JavaDelete</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
</dependencies>
</project>

View File

@ -1,11 +1,13 @@
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Logger;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Queue;
import java.util.logging.Level;
import java.util.logging.Logger;
public class FormMapWithArmoredCars extends JFrame{
private JButton buttonAddArmoredCar;
@ -104,16 +106,16 @@ public class FormMapWithArmoredCars extends JFrame{
}
else
{
logger.log(Level.WARNING,"Не удалось удалить объект");
logger.log(Level.WARN,"Не удалось удалить объект");
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
}
}
catch (ArmoredCarNotFoundException ex) {
logger.log(Level.WARNING,"Ошибка удаления: " + ex.getMessage());
logger.log(Level.WARN,"Ошибка удаления: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage());
}
catch (Exception ex) {
logger.log(Level.WARNING,"Неизвестная ошибка: " + ex.getMessage());
logger.log(Level.FATAL,"Неизвестная ошибка: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage());
}
}
@ -178,13 +180,13 @@ public class FormMapWithArmoredCars extends JFrame{
public void actionPerformed(ActionEvent e) {
if (mapSelectorComboBox.getSelectedIndex() == -1 || textBoxNewMapName.getText().equals(""))
{
logger.log(Level.WARNING, "Не все данные заполнены");
logger.log(Level.WARN, "Не все данные заполнены");
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
return;
}
if (!_mapsDict.containsKey((String) mapSelectorComboBox.getSelectedItem()))
{
logger.log(Level.WARNING, "Нет такой карты");
logger.log(Level.WARN, "Нет такой карты");
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
return;
}
@ -197,8 +199,8 @@ public class FormMapWithArmoredCars extends JFrame{
listBoxMaps.addListSelectionListener(e -> {
if (listBoxMaps.getSelectedValue() != null) {
logger.log(Level.INFO, "Переход на карту " + listBoxMaps.getSelectedValue().toString());
img = _mapsCollection.get((String) listBoxMaps.getSelectedValue()).ShowSet();
logger.log(Level.INFO, "Переход на карту " + listBoxMaps.getSelectedValue().toString());
repaint();
}
});
@ -269,21 +271,21 @@ public class FormMapWithArmoredCars extends JFrame{
try {
if (_mapsCollection.get((String)listBoxMaps.getSelectedValue()).add(armoredCar) > -1)
{
logger.log(Level.INFO, "Объект добавлен");
logger.log(Level.INFO, "Объект" + armoredCar.GetInfo() + "добавлен");
JOptionPane.showMessageDialog(null, "Объект добавлен");
img = _mapsCollection.get((String) listBoxMaps.getSelectedValue()).ShowSet();
repaint();
}
else
{
logger.log(Level.WARNING, "Не удалось добавить объект");
logger.log(Level.WARN, "Не удалось добавить объект");
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
}
} catch (StorageOverflowException ex) {
logger.log(Level.WARNING, "Ошибка добавления: " + ex.getMessage());
logger.log(Level.WARN, "Ошибка добавления: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Ошибка добавления: " + ex.getMessage());
} catch (Exception ex) {
logger.log(Level.WARNING, "Неизвестная ошибка: " + ex.getMessage());
logger.log(Level.FATAL, "Неизвестная ошибка: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage());
}
@ -303,7 +305,7 @@ public class FormMapWithArmoredCars extends JFrame{
}
catch (Exception ex)
{
logger.log(Level.WARNING, "Не сохранилось " + ex.getMessage());
logger.log(Level.ERROR, "Не сохранилось " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Не сохранилось " + ex.getMessage());
}
} else if (type.equals("Файл карты")){
@ -311,7 +313,7 @@ public class FormMapWithArmoredCars extends JFrame{
logger.log(Level.INFO, "Сохранение одной карты в файл " + fd.getDirectory() + filename);
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно");
} else {
logger.log(Level.WARNING, "Не сохранилось ");
logger.log(Level.WARN, "Не сохранилось ");
JOptionPane.showMessageDialog(null, "Не сохранилось");
}
}
@ -333,7 +335,7 @@ public class FormMapWithArmoredCars extends JFrame{
}
catch (Exception ex)
{
logger.log(Level.WARNING, "Не загрузилось " + ex.getMessage());
logger.log(Level.ERROR, "Не загрузилось " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Не загрузилось " + ex.getMessage());
}
@ -343,7 +345,7 @@ public class FormMapWithArmoredCars extends JFrame{
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно");
ReloadMaps();
} else {
logger.log(Level.WARNING, "Не загрузилось");
logger.log(Level.WARN, "Не загрузилось");
JOptionPane.showMessageDialog(null, "Не загрузилось");
}
}

View File

@ -1,23 +1,10 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Program {
private static Logger LOGGER = null;
public static void main(String[] args) {
// LOGGER config
try {
FileInputStream fileInputStream = new FileInputStream(new File("src/main/java/logger.config"));
LogManager.getLogManager().readConfiguration(fileInputStream);
LOGGER = Logger.getGlobal();
}
catch (IOException e) {
e.printStackTrace();
}
LOGGER = LogManager.getLogger(Program.class);
new FormMapWithArmoredCars(LOGGER);
}
}

View File

@ -1,7 +0,0 @@
handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.level=INFO
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.SimpleFormatter.format=%4$S %5$S (%1$td.%1$tm.%1$tY) %n
java.util.logging.FileHandler.append=true
java.util.logging.FileHandler.encoding=UTF-8
java.util.logging.FileHandler.pattern=log.txt

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" >
<Appenders>
<!-- Вывод ERROR WARN FATAL -->
<File name="file-error" fileName="logs/file-error.log" append="false">
<PatternLayout>
<Pattern>%-5level || %msg (%d{dd.MM.yyyy})%n</Pattern>
</PatternLayout>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</File>
<!-- Вывод INFO -->
<File name="file-info" fileName="logs/file-info.log" append="false">
<PatternLayout>
<Pattern>%-5level || %msg (%d{dd.MM.yyyy})%n</Pattern>
</PatternLayout>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="ACCEPT"/>
</File>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="file-info" />
<AppenderRef ref="file-error" />
</Root>
</Loggers>
</Configuration>