From 9186126412c2ee99bc56ba190f4d1e98c7c32d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C?= Date: Thu, 24 Nov 2022 01:25:29 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B3=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Locomotives/FormMapWithSetLocomotives.cs | 22 ++++++++++++++++--- Locomotives/Locomotives/Locomotives.csproj | 7 ++++++ Locomotives/Locomotives/MapsCollection.cs | 4 ++-- Locomotives/Locomotives/Program.cs | 8 ++++++- 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Locomotives/Locomotives/FormMapWithSetLocomotives.cs b/Locomotives/Locomotives/FormMapWithSetLocomotives.cs index a61e58b..a28f5a6 100644 --- a/Locomotives/Locomotives/FormMapWithSetLocomotives.cs +++ b/Locomotives/Locomotives/FormMapWithSetLocomotives.cs @@ -1,4 +1,5 @@ -namespace Locomotives +using Serilog; +namespace Locomotives { /// /// Форма для работы с набором объектов @@ -18,12 +19,14 @@ /// Объект от коллекции карт /// private readonly MapsCollection _mapsCollection; + private readonly ILogger _logger; /// /// Конструктор /// - public FormMapWithSetLocomotives() + public FormMapWithSetLocomotives(ILogger logger) { InitializeComponent(); + _logger = logger; _mapsCollection = new MapsCollection(pictureBoxLocomotives.Width, pictureBoxLocomotives.Height); comboBoxSelectorMap.Items.Clear(); foreach (var elem in _mapsDict) @@ -72,8 +75,9 @@ return; } _mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]); - textBoxNewMapName.Text = ""; ReloadMaps(); + _logger.Information($"Создана карта типа {comboBoxSelectorMap.Text} с названием {textBoxNewMapName.Text}"); + textBoxNewMapName.Text = ""; } /// /// Выбор карты @@ -83,6 +87,7 @@ private void ListBoxMaps_SelectedIndexChanged(object sender, EventArgs e) { pictureBoxLocomotives.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.Information($"Выбрана карта с названием {listBoxMaps.SelectedItem}"); } /// /// Удаление карты @@ -99,6 +104,7 @@ { _mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty); ReloadMaps(); + _logger.Information($"Удалена карта с названием {listBoxMaps.SelectedItem}"); } MessageBox.Show("Карта удалена"); } @@ -122,6 +128,7 @@ { MessageBox.Show("Объект добавлен"); pictureBoxLocomotives.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.Information($"Добавлен новый объект на карту {listBoxMaps.SelectedItem}"); } else { @@ -131,10 +138,12 @@ catch (StorageOverflowException ex) { MessageBox.Show($"Ошибка добавления: {ex.Message}"); + _logger.Warning($"Не удалось добавить объект: {ex.Message}"); } catch (Exception ex) { MessageBox.Show($"Неизвестная ошибка: {ex.Message}"); + _logger.Warning($"Не удалось добавить объект: {ex.Message}"); } } /// @@ -163,6 +172,7 @@ { MessageBox.Show("Объект удален"); pictureBoxLocomotives.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.Information($"Удалён объект с карты {listBoxMaps.SelectedItem}"); } else { @@ -172,10 +182,12 @@ catch (LocomotiveNotFoundException ex) { MessageBox.Show($"Ошибка удаления: {ex.Message}"); + _logger.Warning($"Не удалось удалить объект: {ex.Message}"); } catch (Exception ex) { MessageBox.Show($"Неизвестная ошибка: {ex.Message}"); + _logger.Warning($"Не удалось удалить объект: {ex.Message}"); } } /// @@ -249,11 +261,13 @@ _mapsCollection.SaveData(saveFileDialog.FileName); MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.Information($"Коллекция карт сохранена в файл по адресу {saveFileDialog.FileName}"); } catch(Exception ex) { MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.Warning($"Ошибка сохранения файла по адресу {saveFileDialog.FileName}: {ex.Message}"); } } } @@ -272,11 +286,13 @@ MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); ReloadMaps(); + _logger.Information($"Коллекция карт загружена из файла по адресу {openFileDialog.FileName}"); } catch (Exception ex) { MessageBox.Show($"Не удалось загрузить файл: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.Warning($"Ошибка загрузки файла по адресу {openFileDialog.FileName}: {ex.Message}"); } } } diff --git a/Locomotives/Locomotives/Locomotives.csproj b/Locomotives/Locomotives/Locomotives.csproj index ce86fc6..d79edaa 100644 --- a/Locomotives/Locomotives/Locomotives.csproj +++ b/Locomotives/Locomotives/Locomotives.csproj @@ -27,4 +27,11 @@ + + + + + + + \ No newline at end of file diff --git a/Locomotives/Locomotives/MapsCollection.cs b/Locomotives/Locomotives/MapsCollection.cs index fa5ee4c..c135794 100644 --- a/Locomotives/Locomotives/MapsCollection.cs +++ b/Locomotives/Locomotives/MapsCollection.cs @@ -91,7 +91,7 @@ namespace Locomotives { if (!File.Exists(filename)) { - throw new Exception("Файл не найдён"); + throw new FileNotFoundException("Файл не найдён"); } using (StreamReader sr = new(filename)) { @@ -99,7 +99,7 @@ namespace Locomotives if (firstStr == null || !firstStr.Contains("MapsCollection")) { //если нет такой записи, то это не те данные - throw new Exception("Формат данных в файле неправильный"); + throw new FileFormatException("Формат данных в файле неправильный"); } string? currentString; while ((currentString = sr.ReadLine()) != null) diff --git a/Locomotives/Locomotives/Program.cs b/Locomotives/Locomotives/Program.cs index 47d160f..04bdb50 100644 --- a/Locomotives/Locomotives/Program.cs +++ b/Locomotives/Locomotives/Program.cs @@ -1,3 +1,5 @@ +using Serilog; + namespace Locomotives { internal static class Program @@ -8,8 +10,12 @@ namespace Locomotives [STAThread] static void Main() { + var Logger = new LoggerConfiguration() + .MinimumLevel.Information() + .WriteTo.File(path: "log.txt", outputTemplate: "[{Timestamp:HH:mm:ss.fff}] {Level}: {Message};{NewLine}") + .CreateLogger(); ApplicationConfiguration.Initialize(); - Application.Run(new FormMapWithSetLocomotives()); + Application.Run(new FormMapWithSetLocomotives(Logger)); } } } \ No newline at end of file