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