2. Логирование (это база)

This commit is contained in:
prodigygirl 2022-12-03 17:29:13 +04:00
parent 212cfcde38
commit d9bf6a8964
3 changed files with 55 additions and 4 deletions

View File

@ -4,6 +4,8 @@ import java.awt.event.*;
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;
@ -36,8 +38,11 @@ public class FormMapWithArmoredCars extends JFrame{
private final MapsCollection _mapsCollection;
private final Queue<DrawingObjectArmoredCar> queue = new LinkedList<>();
public FormMapWithArmoredCars() {
private final Logger logger;
public FormMapWithArmoredCars(Logger logger) {
super("Карта с набором объектов");
this.logger = logger;
setBounds(100, 100, 1000, 725);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
@ -93,18 +98,22 @@ public class FormMapWithArmoredCars extends JFrame{
if (armoredCar != null)
{
queue.add((DrawingObjectArmoredCar) armoredCar);
logger.log(Level.INFO,"Удален объект: " + armoredCar.GetInfo());
JOptionPane.showMessageDialog(null, "Объект удален");
img = _mapsCollection.get((String) listBoxMaps.getSelectedValue()).ShowSet();
}
else
{
logger.log(Level.WARNING,"Не удалось удалить объект");
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
}
}
catch (ArmoredCarNotFoundException ex) {
logger.log(Level.WARNING,"Ошибка удаления: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage());
}
catch (Exception ex) {
logger.log(Level.WARNING,"Неизвестная ошибка: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage());
}
}
@ -169,22 +178,26 @@ public class FormMapWithArmoredCars extends JFrame{
public void actionPerformed(ActionEvent e) {
if (mapSelectorComboBox.getSelectedIndex() == -1 || textBoxNewMapName.getText().equals(""))
{
logger.log(Level.WARNING, "Не все данные заполнены");
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
return;
}
if (!_mapsDict.containsKey((String) mapSelectorComboBox.getSelectedItem()))
{
logger.log(Level.WARNING, "Нет такой карты");
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
return;
}
_mapsCollection.AddMap(textBoxNewMapName.getText(), _mapsDict.get((String) mapSelectorComboBox.getSelectedItem()));
ReloadMaps();
logger.log(Level.INFO, "Добавлена карта " + mapSelectorComboBox.getSelectedItem());
}
});
_mapsCollection = new MapsCollection(drawPanel.getWidth(), drawPanel.getHeight());
listBoxMaps.addListSelectionListener(e -> {
if (listBoxMaps.getSelectedValue() != null) {
logger.log(Level.INFO, "Переход на карту " + listBoxMaps.getSelectedValue().toString());
img = _mapsCollection.get((String) listBoxMaps.getSelectedValue()).ShowSet();
repaint();
}
@ -202,6 +215,7 @@ public class FormMapWithArmoredCars extends JFrame{
listBoxMaps.getSelectedValue()+ "?", "Удаление", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
{
_mapsCollection.DelMap((String) listBoxMaps.getSelectedValue());
logger.log(Level.INFO, "Удалена карта " + listBoxMaps.getSelectedValue());
ReloadMaps();
}
}
@ -255,17 +269,21 @@ public class FormMapWithArmoredCars extends JFrame{
try {
if (_mapsCollection.get((String)listBoxMaps.getSelectedValue()).add(armoredCar) > -1)
{
logger.log(Level.INFO, "Объект добавлен");
JOptionPane.showMessageDialog(null, "Объект добавлен");
img = _mapsCollection.get((String) listBoxMaps.getSelectedValue()).ShowSet();
repaint();
}
else
{
logger.log(Level.WARNING, "Не удалось добавить объект");
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
}
} catch (StorageOverflowException ex) {
logger.log(Level.WARNING, "Ошибка добавления: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Ошибка добавления: " + ex.getMessage());
} catch (Exception ex) {
logger.log(Level.WARNING, "Неизвестная ошибка: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage());
}
@ -280,16 +298,20 @@ public class FormMapWithArmoredCars extends JFrame{
if (type.equals("Файл")) {
try {
_mapsCollection.SaveData(fd.getDirectory() + filename);
logger.log(Level.INFO, "Сохранение в файл " + fd.getDirectory() + filename);
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно");
}
catch (Exception ex)
{
logger.log(Level.WARNING, "Не сохранилось " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Не сохранилось " + ex.getMessage());
}
} else if (type.equals("Файл карты")){
if (_mapsCollection.SaveDataMap(fd.getDirectory() + filename, (String) listBoxMaps.getSelectedValue())) {
logger.log(Level.INFO, "Сохранение одной карты в файл " + fd.getDirectory() + filename);
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно");
} else {
logger.log(Level.WARNING, "Не сохранилось ");
JOptionPane.showMessageDialog(null, "Не сохранилось");
}
}
@ -306,18 +328,22 @@ public class FormMapWithArmoredCars extends JFrame{
try {
_mapsCollection.LoadData(fd.getDirectory() + filename);
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно");
logger.log(Level.INFO, "Загрузка из файла" + fd.getDirectory() + filename);
ReloadMaps();
}
catch (Exception exception)
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Не загрузилось " + exception.getMessage());
logger.log(Level.WARNING, "Не загрузилось " + ex.getMessage());
JOptionPane.showMessageDialog(null, "Не загрузилось " + ex.getMessage());
}
} else if (type.equals("Файл карты")){
if (_mapsCollection.LoadDataMap(fd.getDirectory() + filename)) {
logger.log(Level.INFO, "Загрузка одной карты из файла" + fd.getDirectory() + filename);
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно");
ReloadMaps();
} else {
logger.log(Level.WARNING, "Не загрузилось");
JOptionPane.showMessageDialog(null, "Не загрузилось");
}
}

View File

@ -1,5 +1,23 @@
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;
public class Program {
private static Logger LOGGER = null;
public static void main(String[] args) {
new FormMapWithArmoredCars();
// 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();
}
new FormMapWithArmoredCars(LOGGER);
}
}

View File

@ -0,0 +1,7 @@
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