From fd1be311a2427dd2697d3aec6323bd9d4a4baf97 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Fri, 2 Dec 2022 18:13:52 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D1=80=D0=B5=D0=B5=20=D0=B2?= =?UTF-8?q?=D1=81=D0=B5=D0=B3=D0=BE=20=D0=BA=D0=BE=D0=BD=D0=B5=D1=87=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=207-=D0=B9?= =?UTF-8?q?=20=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D0=BE=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/loginfo.log | 4 ++ Project/logs.log | 3 - Project/logwarn.log | 2 + Project/src/FormMapWithSetPlanesGeneric.java | 60 +++++++++++--------- Project/src/MapWithSetPlanesGeneric.java | 2 +- Project/src/MapsCollection.java | 17 +++--- Project/src/PlaneNotFoundException.java | 2 +- Project/src/SetPlanesGeneric.java | 2 +- Project/src/log4j.properties | 31 +++++----- 9 files changed, 65 insertions(+), 58 deletions(-) create mode 100644 Project/loginfo.log delete mode 100644 Project/logs.log create mode 100644 Project/logwarn.log diff --git a/Project/loginfo.log b/Project/loginfo.log new file mode 100644 index 0000000..ba2fe2e --- /dev/null +++ b/Project/loginfo.log @@ -0,0 +1,4 @@ +INFO FormMapWithSetPlanesGeneric:157 - Добавлена карта 123 02-12-2022 +INFO FormMapWithSetPlanesGeneric:191 - Осуществлён переход на карту под названием 123 02-12-2022 +INFO FormMapWithSetPlanesGeneric:157 - Добавлена карта 454 02-12-2022 +INFO FormMapWithSetPlanesGeneric:191 - Осуществлён переход на карту под названием 454 02-12-2022 diff --git a/Project/logs.log b/Project/logs.log deleted file mode 100644 index a06366e..0000000 --- a/Project/logs.log +++ /dev/null @@ -1,3 +0,0 @@ -2022-12-02 15:37:35 INFO Main:17 - ШАЛОМ ЁМАНА :))) - 2022-12-02 15:41:33 INFO Main:17 - ШАЛОМ ЁМАНА :))) - 2022-12-02 15:42:13 INFO Main:17 - ШАЛОМ ЁМАНА :))) diff --git a/Project/logwarn.log b/Project/logwarn.log new file mode 100644 index 0000000..64f7259 --- /dev/null +++ b/Project/logwarn.log @@ -0,0 +1,2 @@ +WARN FormMapWithSetPlanesGenericAdmin:304 - Ошибка удаления: Не найден объект по позиции 1 02-12-2022 +WARN FormMapWithSetPlanesGenericAdmin:304 - Ошибка удаления: Не найден объект по позиции 0 02-12-2022 diff --git a/Project/src/FormMapWithSetPlanesGeneric.java b/Project/src/FormMapWithSetPlanesGeneric.java index 3d597f6..06e449b 100644 --- a/Project/src/FormMapWithSetPlanesGeneric.java +++ b/Project/src/FormMapWithSetPlanesGeneric.java @@ -45,6 +45,10 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ //логгер private static Logger _logger; + //дополнительные логгеры + Logger logwarn = Logger.getLogger("FormMapWithSetPlanesGenericAdmin"); + Logger loginfo = Logger.getLogger("FormMapWithSetPlanesGeneric"); + //Для выпадающего списка HashMap _mapsHashMap = new HashMap<>() {{ @@ -131,11 +135,11 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ if(ComboBoxSelectorMap.getSelectedIndex() == -1) { - _logger.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была выбрана карта"); + logwarn.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была выбрана карта"); } else { - _logger.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была названа карта"); + logwarn.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была названа карта"); } return; @@ -144,13 +148,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ if(!_mapsHashMap.containsKey(ComboBoxSelectorMap.getSelectedItem())) { JOptionPane.showMessageDialog(null, "Данная карта отсутсвует", "Ошибка", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.ERROR, "Отсутствует карта с названием " + TextBoxNewMapName.getText()); + logwarn.log(Level.ERROR, "Отсутствует карта с названием " + TextBoxNewMapName.getText()); return; } _mapsCollection.AddMap(TextBoxNewMapName.getText(), _mapsHashMap.get(ComboBoxSelectorMap.getSelectedItem().toString())); - _logger.log(Level.INFO, "Добавлена карта " + TextBoxNewMapName.getText()); + loginfo.log(Level.INFO, "Добавлена карта " + TextBoxNewMapName.getText()); ReloadMaps(); } }); @@ -168,7 +172,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ "Удаление", JOptionPane.YES_NO_OPTION) == 0) { _mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString()); - _logger.log(Level.INFO, "Удалена карта " + ListBoxMaps.getSelectedValue().toString()); + loginfo.log(Level.INFO, "Удалена карта " + ListBoxMaps.getSelectedValue().toString()); ReloadMaps(); } } @@ -184,7 +188,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ } UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet()); - _logger.log(Level.INFO, "Осуществлён переход на карту под названием " + ListBoxMaps.getSelectedValue().toString()); + loginfo.log(Level.INFO, "Осуществлён переход на карту под названием " + ListBoxMaps.getSelectedValue().toString()); } }); @@ -230,31 +234,31 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Add(plane) != -1) { JOptionPane.showMessageDialog(null, "Объект добавлен"); - _logger.log(Level.INFO, "Добавлен объект: " + plane); + loginfo.log(Level.INFO, "Добавлен объект: " + plane); UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet()); } else { JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.INFO, "Не удалось добавить объект: " + plane); + loginfo.log(Level.INFO, "Не удалось добавить объект: " + plane); } } } catch(StorageOverflowException ex) { - _logger.log(Level.WARN, "Ошибка, переполнение хранилища: " + ex.getMessage()); JOptionPane.showConfirmDialog(null, "Ошибка, хранилище переполнено: " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); + logwarn.log(Level.WARN, "Ошибка, переполнение хранилища: " + ex.getMessage()); } catch(IllegalArgumentException ex) { - _logger.log(Level.ERROR, "Ошибка добавления: " + ex.getMessage()); JOptionPane.showConfirmDialog(null, ex.getMessage(), "Результат", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); + logwarn.log(Level.ERROR, "Ошибка добавления: " + ex.getMessage()); } catch(Exception ex) { JOptionPane.showConfirmDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.FATAL, "Неизвестная ошибка: " + ex.getMessage()); + logwarn.log(Level.FATAL, "Неизвестная ошибка: " + ex.getMessage()); } }); @@ -283,24 +287,26 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ int pos = Integer.parseInt(MaskedTextBoxPosition.getText()); try { - if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos) != null) { - JOptionPane.showMessageDialog(null, "Объект удалён"); - _logger.log(Level.INFO, "Oбъект удалён: " + _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos)); + var deletePlane = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos); + + if (deletePlane != null) { + JOptionPane.showMessageDialog(null, "Объект удалён " + deletePlane); + loginfo.log(Level.INFO, "Oбъект удалён: " + deletePlane); UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet()); } else { JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.ERROR, "Не удалось удалить объект " + _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos)); + logwarn.log(Level.ERROR, "Не удалось удалить объект " + deletePlane); } } catch (PlaneNotFoundException ex) { JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.WARN, "Ошибка удаления: " + ex.getMessage()); + logwarn.log(Level.WARN, "Ошибка удаления: " + ex.getMessage()); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.FATAL, "Ошибка удаления: " + ex.getMessage()); + logwarn.log(Level.FATAL, "Ошибка удаления: " + ex.getMessage()); } } }); @@ -448,13 +454,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ ReloadMaps(); JOptionPane.showMessageDialog(null,"Загрузка данных прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE); - _logger.log(Level.INFO, "Загрузка карт прошла успешно"); + loginfo.log(Level.INFO, "Загрузка карт прошла успешно"); } catch(Exception ex) { JOptionPane.showMessageDialog(null, "Ошибка загрузки данных" + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.ERROR, "Ошибка загрузки: " + ex.getMessage()); + logwarn.log(Level.ERROR, "Ошибка загрузки: " + ex.getMessage()); } } } @@ -474,13 +480,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ _mapsCollection.SaveData(jfc.getSelectedFile().getPath()); JOptionPane.showMessageDialog(null,"Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE); - _logger.log(Level.ERROR,"Сохранение прошло успешно"); + logwarn.log(Level.ERROR,"Сохранение прошло успешно"); } catch(Exception ex) { JOptionPane.showMessageDialog(null, "Не сохранилось" + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE); - _logger.log(Level.ERROR,"Ошибка сохранения: " + ex.getMessage()); + logwarn.log(Level.ERROR,"Ошибка сохранения: " + ex.getMessage()); } } } @@ -523,16 +529,14 @@ public class FormMapWithSetPlanesGeneric extends JFrame{ if (result == JFileChooser.APPROVE_OPTION) { try { - if (_mapsCollection.SaveOneData(jfc.getSelectedFile().getPath(), ListBoxMaps.getSelectedValue().toString())) { - JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", - "Результат", JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(null, "Не сохранилось", - "Результат", JOptionPane.ERROR_MESSAGE); - } + _mapsCollection.SaveOneData(jfc.getSelectedFile().getPath(), ListBoxMaps.getSelectedValue().toString()); + JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", + "Результат", JOptionPane.INFORMATION_MESSAGE); } catch(Exception ex) { + JOptionPane.showMessageDialog(null, "Не сохранилось " + ex.getMessage(), + "Результат", JOptionPane.ERROR_MESSAGE); throw new RuntimeException(ex); } } diff --git a/Project/src/MapWithSetPlanesGeneric.java b/Project/src/MapWithSetPlanesGeneric.java index 63fcae5..49ba6bc 100644 --- a/Project/src/MapWithSetPlanesGeneric.java +++ b/Project/src/MapWithSetPlanesGeneric.java @@ -30,7 +30,7 @@ public class MapWithSetPlanesGeneric (width * height); + _setPlanes = new SetPlanesGeneric(10); _deletePlane = new LinkedList<>(); _pictureWidth = picWidth; _pictureHeight = picHeight; diff --git a/Project/src/MapsCollection.java b/Project/src/MapsCollection.java index e08231c..ed8c011 100644 --- a/Project/src/MapsCollection.java +++ b/Project/src/MapsCollection.java @@ -78,13 +78,13 @@ public class MapsCollection } //загрузка нформации по по самолётам в ангарах из файла - public Boolean LoadData(String filename) + public void LoadData(String filename) throws FileNotFoundException { File file = new File(filename); if (!file.exists()) { - return false; + throw new FileNotFoundException("Файл не найден"); } try (BufferedReader reader = new BufferedReader(new FileReader(filename))) @@ -94,7 +94,7 @@ public class MapsCollection //если не содержит такую запись или пустой файл if ((str = reader.readLine()) == null || !str.contains("MapsCollection")) { - return false; + throw new IllegalArgumentException("Формат данных в файле неправильный"); } _mapStorage.clear(); @@ -123,16 +123,15 @@ public class MapsCollection _mapStorage.get(element[0]).LoadData(element[2].split(String.valueOf(separatorData))); } } - catch (IOException e) + catch (IOException | StorageOverflowException ex) { - JOptionPane.showMessageDialog(null, e.getMessage()); + JOptionPane.showMessageDialog(null, ex.getMessage()); + throw new RuntimeException(ex); } - - return true; } //сохранение информации по самолётам в ангарах в файл - public Boolean SaveOneData(String filename, String mapName) + public void SaveOneData(String filename, String mapName) { File file = new File(filename); @@ -158,8 +157,6 @@ public class MapsCollection catch (IOException e) { JOptionPane.showMessageDialog(null, e.getMessage()); } - - return true; } //загрузка информации по по самолётам в ангарах из файла diff --git a/Project/src/PlaneNotFoundException.java b/Project/src/PlaneNotFoundException.java index fbbaa62..6f05b52 100644 --- a/Project/src/PlaneNotFoundException.java +++ b/Project/src/PlaneNotFoundException.java @@ -1,6 +1,6 @@ public class PlaneNotFoundException extends Exception { - public PlaneNotFoundException(int i) {super ("Не найден объект по позиции" + i); } + public PlaneNotFoundException(int i) {super ("Не найден объект по позиции " + i); } public PlaneNotFoundException() { super(); } diff --git a/Project/src/SetPlanesGeneric.java b/Project/src/SetPlanesGeneric.java index e915e38..3ffbb31 100644 --- a/Project/src/SetPlanesGeneric.java +++ b/Project/src/SetPlanesGeneric.java @@ -50,7 +50,7 @@ public class SetPlanesGeneric implements Iterable public T Remove(int position) throws PlaneNotFoundException { // проверка позиции - if (position >= _maxCount || position < 0) + if (position >= _places.size() || position < 0) { throw new PlaneNotFoundException(position); } diff --git a/Project/src/log4j.properties b/Project/src/log4j.properties index 8c27ff8..85d457b 100644 --- a/Project/src/log4j.properties +++ b/Project/src/log4j.properties @@ -1,16 +1,19 @@ -# Root logger option -log4j.rootLogger=INFO, file, stdout +log4j.logger.FormMapWithSetPlanesGeneric=INFO, fileAppender +log4j.logger.FormMapWithSetPlanesGenericAdmin=WARN, adminAppender -# Direct log messages to a log file -log4j.appender.file=org.apache.log4j.RollingFileAppender -log4j.appender.file.File=C:\logs.log -log4j.appender.file.MaxFileSize=10MB -log4j.appender.file.MaxBackupIndex=10 -log4j.appender.file.layout=org.apache.log4j.PatternLayout -log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n +log4j.additivity.file=false +log4j.additivity.admin=false -# Direct log messages to stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file +log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender +log4j.appender.fileAppender.File=loginfo.log +log4j.appender.fileAppender.MaxFileSize=5MB +log4j.appender.fileAppender.MaxBackupIndex=1 +log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.fileAppender.layout.ConversionPattern=%-5p %c{1}:%L - %m %d{dd-MM-yyyy}%n + +log4j.appender.adminAppender=org.apache.log4j.RollingFileAppender +log4j.appender.adminAppender.File=logwarn.log +log4j.appender.adminAppender.MaxFileSize=5MB +log4j.appender.adminAppender.MaxBackupIndex=1 +log4j.appender.adminAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.adminAppender.layout.ConversionPattern=%-5p %c{1}:%L - %m %d{dd-MM-yyyy}%n \ No newline at end of file