diff --git a/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs b/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs index 0e7f56b..e5c64f7 100644 --- a/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs +++ b/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs @@ -1,5 +1,4 @@ -using Microsoft.Extensions.Logging; -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -9,6 +8,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static System.Windows.Forms.DataFormats; +using Serilog; namespace WarmlyShip { @@ -35,7 +35,7 @@ namespace WarmlyShip /// /// Конструктор /// - public FormMapWithSetWarmlyShip(ILogger logger) + public FormMapWithSetWarmlyShip(ILogger logger) { InitializeComponent(); _logger = logger; @@ -76,18 +76,18 @@ namespace WarmlyShip if (comboBoxSelectorMap.SelectedIndex == -1 || string.IsNullOrEmpty(textBoxNewMapName.Text)) { MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - _logger.LogInformation($"Карта была не выбрана или не названа"); + _logger.Information($"Карта была не выбрана или не названа"); return; } if (!_mapsDict.ContainsKey(comboBoxSelectorMap.Text)) { MessageBox.Show("Нет такой карты", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); - _logger.LogInformation($"Нет карты с названием: {textBoxNewMapName.Text}"); + _logger.Information($"Нет карты с названием: {textBoxNewMapName.Text}"); return; } _mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]); ReloadMaps(); - _logger.LogInformation($"Добавлена карта {textBoxNewMapName.Text}"); + _logger.Information($"Добавлена карта {textBoxNewMapName.Text}"); } /// /// Выбор карты @@ -97,7 +97,7 @@ namespace WarmlyShip private void ListBoxMaps_SelectedIndexChanged(object sender, EventArgs e) { pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); - _logger.LogInformation($"Переход на карту с названием: {listBoxMaps.SelectedItem?.ToString() ?? string.Empty}"); + _logger.Information($"Переход на карту с названием: {listBoxMaps.SelectedItem?.ToString() ?? string.Empty}"); } /// @@ -114,7 +114,7 @@ namespace WarmlyShip if (MessageBox.Show($"Удалить карту {listBoxMaps.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { _mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty); - _logger.LogInformation($"Удалена карту с названием: {listBoxMaps.SelectedItem?.ToString() ?? string.Empty}"); + _logger.Information($"Удалена карту с названием: {listBoxMaps.SelectedItem?.ToString() ?? string.Empty}"); ReloadMaps(); } } @@ -141,20 +141,20 @@ namespace WarmlyShip else if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawningObjectShip(liner) != -1) { MessageBox.Show("Объект добавлен"); - _logger.LogInformation($"Добавлен объект"); + _logger.Information($"Добавлен объект"); pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); } else { MessageBox.Show("Не удалось добавить объект"); - _logger.LogInformation($"Хранилище переполнено.", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.Warning("Не удалось добавить объект"); } } catch(StorageOverflowException ex) { MessageBox.Show("Не удалось добавить объект"); MessageBox.Show("Хранилище переполнено. Ошибка: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); - _logger.LogInformation($"Хранилище переполнено. Ошибка: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.Warning("Хранилище переполнено. Ошибка: {ex.Message}"); } } /// @@ -182,23 +182,25 @@ namespace WarmlyShip if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null) { MessageBox.Show("Объект удален"); - _logger.LogInformation($"Из карты удален объект с позиции {pos}"); + _logger.Information($"Из карты удален объект с позиции {pos}"); pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); ; } else { MessageBox.Show("Не удалось удалить объект"); - _logger.LogInformation($"Не удалось удалить объект с позиции {pos}"); + _logger.Warning($"Не удалось удалить объект с позиции {pos}"); } } catch (WarmlyShipNotFoundException ex) { MessageBox.Show($"Ошибка удаления : {ex.Message}"); + _logger.Warning($"Ошибка удаления : {ex.Message}"); } catch (Exception ex) { MessageBox.Show($"Неизвестная ошибка : {ex.Message}"); + _logger.Warning($"Неизвестная ошибка : {ex.Message}"); } } @@ -277,12 +279,12 @@ namespace WarmlyShip { _mapsCollection.SaveData(saveFileDialog.FileName); MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); - _logger.LogInformation($"Сохранение прошло успешно. Сохранено в {saveFileDialog.FileName}"); + _logger.Information($"Сохранение прошло успешно. Сохранено в {saveFileDialog.FileName}"); } catch (Exception ex) { MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); - _logger.LogInformation($"Не удалось сохранить файл {saveFileDialog.FileName}. Ошибка: {ex.Message}"); + _logger.Warning($"Не удалось сохранить файл {saveFileDialog.FileName}. Ошибка: {ex.Message}"); } } } @@ -299,13 +301,13 @@ namespace WarmlyShip { _mapsCollection.LoadData(openFileDialog.FileName); MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); - _logger.LogInformation($"Загрузка файла {openFileDialog.FileName} прошла успешно"); + _logger.Information($"Загрузка файла {openFileDialog.FileName} прошла успешно"); ReloadMaps(); } catch (Exception ex) { MessageBox.Show($"Не загрузилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); - _logger.LogInformation($"Не загрузился файл {openFileDialog.FileName}. Ошибка:{ex.Message}"); + _logger.Warning($"Не загрузился файл {openFileDialog.FileName}. Ошибка:{ex.Message}"); } } } diff --git a/WarmlyShip/WarmlyShip/Program.cs b/WarmlyShip/WarmlyShip/Program.cs index 1b05656..690ad3a 100644 --- a/WarmlyShip/WarmlyShip/Program.cs +++ b/WarmlyShip/WarmlyShip/Program.cs @@ -1,6 +1,6 @@ +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using NLog.Extensions.Logging; +using Serilog; namespace WarmlyShip { @@ -14,25 +14,26 @@ namespace WarmlyShip { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); + + var services = new ServiceCollection(); - ConfigureServices(services); using (ServiceProvider serviceProvider = services.BuildServiceProvider()) { - Application.Run(serviceProvider.GetRequiredService()); + var configuration = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile(path: "serilog.json", optional: false, reloadOnChange: true) + .Build(); + + var logger = new LoggerConfiguration() + .ReadFrom.Configuration(configuration) + .CreateLogger(); + + ApplicationConfiguration.Initialize(); + Application.Run(new FormMapWithSetWarmlyShip(logger)); } } - private static void ConfigureServices(ServiceCollection services) - { - services.AddSingleton() - .AddLogging(option => - { - option.SetMinimumLevel(LogLevel.Information); - option.AddNLog("nlog.config"); - }); - } } } \ No newline at end of file diff --git a/WarmlyShip/WarmlyShip/WarmlyShip.csproj b/WarmlyShip/WarmlyShip/WarmlyShip.csproj index 28f845c..0fdaa24 100644 --- a/WarmlyShip/WarmlyShip/WarmlyShip.csproj +++ b/WarmlyShip/WarmlyShip/WarmlyShip.csproj @@ -10,19 +10,35 @@ + Always + + Always + + + + + + + + + + + + + diff --git a/WarmlyShip/WarmlyShip/serilog.json b/WarmlyShip/WarmlyShip/serilog.json new file mode 100644 index 0000000..323ce72 --- /dev/null +++ b/WarmlyShip/WarmlyShip/serilog.json @@ -0,0 +1,16 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.File" ], + "MinimumLevel": "Information", + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "Logs/log.log", + "rollingInterval": "Day", + "outputTemplate": "[{Timestamp:HH:mm:ss.fff}] {Level}: {Message};{NewLine}" + } + } + ] + } +} \ No newline at end of file