diff --git a/AIParkingApplication/AIParkingApplicationForm.cs b/AIParkingApplication/AIParkingApplicationForm.cs index 3335a8a..07535cf 100644 --- a/AIParkingApplication/AIParkingApplicationForm.cs +++ b/AIParkingApplication/AIParkingApplicationForm.cs @@ -1,4 +1,5 @@ -using System; +using NLog; +using System; using System.Configuration; using System.Drawing; using System.Linq; @@ -22,15 +23,19 @@ namespace AIParkingApplication private EngineApiController engineApiController; private string doorAccessControlDeviceIP; + private Logger applicationLogger; + public AIParkingApplicationForm(ApiController apiController, string serverIPAddress, Config configOnWeb) { InitializeComponent(); this.apiController = apiController; this.configOnWeb = configOnWeb; + applicationLogger = LogManager.GetLogger(AppConstant.APPLICATION_LOGGER_NAME); ReadAccessControlDeviceIPConfigurationFile(); if (string.IsNullOrEmpty(doorAccessControlDeviceIP) || !Util.IsValidIPAddress(doorAccessControlDeviceIP)) { + applicationLogger.Log(LogLevel.Error, "Kiểm tra lại cấu hình IP thiết bị mở cửa!"); MessageBox.Show("Kiểm tra lại cấu hình IP thiết bị mở cửa! (C3200)", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } @@ -55,6 +60,7 @@ namespace AIParkingApplication } catch (Exception) { + applicationLogger.Log(LogLevel.Error, "Cấu hình URL của Engine nhận diện biển số lỗi!"); MessageBox.Show("Cấu hình API Plate Recognize lỗi!", "Cấu hình API Engine lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } @@ -149,6 +155,7 @@ namespace AIParkingApplication UpdateMenuStripItemStatus(sender as ToolStripMenuItem); StopAllLanes(); UpdateLaneInIn(); + applicationLogger.Log(LogLevel.Info, "Chuyển làn: IN-IN"); } private void toolStripMenuItemSwitchLaneInOut_Click(object sender, EventArgs e) @@ -157,6 +164,7 @@ namespace AIParkingApplication UpdateMenuStripItemStatus(sender as ToolStripMenuItem); StopAllLanes(); UpdateLaneInOut(); + applicationLogger.Log(LogLevel.Info, "Chuyển làn: IN-OUT"); } private void toolStripMenuItemSwitchLaneOutIn_Click(object sender, EventArgs e) @@ -165,6 +173,7 @@ namespace AIParkingApplication UpdateMenuStripItemStatus(sender as ToolStripMenuItem); StopAllLanes(); UpdateLaneOutIn(); + applicationLogger.Log(LogLevel.Info, "Chuyển làn: OUT-IN"); } private void toolStripMenuItemSwitchLaneOutOut_Click(object sender, EventArgs e) @@ -173,6 +182,7 @@ namespace AIParkingApplication UpdateMenuStripItemStatus(sender as ToolStripMenuItem); StopAllLanes(); UpdateLaneOutOut(); + applicationLogger.Log(LogLevel.Info, "Chuyển làn: OUT-OUT"); } private void UpdateMenuStripItemStatus(ToolStripMenuItem selectedToolStripMenuItem) @@ -225,27 +235,29 @@ namespace AIParkingApplication if (lane0 == "in" && lane1 == "in") { UpdateLaneInIn(); - + applicationLogger.Log(LogLevel.Info, $"Khởi động App sử dụng lane: IN-IN"); } if (lane0 == "in" && lane1 == "out") { UpdateLaneInOut(); - + applicationLogger.Log(LogLevel.Info, $"Khởi động App sử dụng lane: IN-OUT"); } if (lane0 == "out" && lane1 == "in") { UpdateLaneOutIn(); - + applicationLogger.Log(LogLevel.Info, $"Khởi động App sử dụng lane: OUT-IN"); } if (lane0 == "out" && lane1 == "out") { UpdateLaneOutOut(); + applicationLogger.Log(LogLevel.Info, $"Khởi động App sử dụng lane: OUT-OUT"); } } else { Util.AddOrUpdateAppSettings(CURRENT_LANE_SETTING_KEY, "IN-OUT"); UpdateLaneInOut(); + applicationLogger.Log(LogLevel.Info, $"Khởi động App đọc config không đủ 2 param: IN-OUT"); } } } @@ -254,6 +266,7 @@ namespace AIParkingApplication Util.AddOrUpdateAppSettings(CURRENT_LANE_SETTING_KEY, "IN-OUT"); UpdateLaneInOut(); Console.WriteLine($"{DateTime.Now.GetTimeFormatted()}\tReadLaneSettingFromConfigurationFile\t{ex.Message}"); + applicationLogger.Log(LogLevel.Error, $"Đọc config làn lỗi khi khởi động app!\texMessage: {ex.Message}"); } } @@ -265,8 +278,9 @@ namespace AIParkingApplication } catch (Exception ex) { - Console.WriteLine($"{DateTime.Now.GetTimeFormatted()}\tReadAccessControlDeviceIPConfiguration\t{ex.Message}"); doorAccessControlDeviceIP = string.Empty; + Console.WriteLine($"{DateTime.Now.GetTimeFormatted()}\tReadAccessControlDeviceIPConfiguration\t{ex.Message}"); + applicationLogger.Log(LogLevel.Error, $"Cấu hình IP thiết bị mở cửa lỗi(DOOR_ACCESS_DEVICE_CONTROL_IP)!\texMessage: {ex.Message}"); } } @@ -278,6 +292,7 @@ namespace AIParkingApplication private void AIParkingApplicationForm_FormClosing(object sender, FormClosingEventArgs e) { + applicationLogger.Log(LogLevel.Error, $"Đóng ứng dụng"); Application.Exit(); } } diff --git a/AIParkingApplication/AppConstant.cs b/AIParkingApplication/AppConstant.cs index fc8f2ca..a10d006 100644 --- a/AIParkingApplication/AppConstant.cs +++ b/AIParkingApplication/AppConstant.cs @@ -2,13 +2,15 @@ { public static class AppConstant { - #region Application Messages public const string APPLICATION_IS_RUNNNING = "AIParkingApplication: Ứng dụng đã chạy!"; public const string ERROR_TITLE = "Lỗi"; public const string DATETIME_FORMAT = "HH:mm:ss dd/MM/yyyy"; - #endregion public const string CAMERA_FAILED_IMAGE_PATH = @"Images\CantConnectCamera.jpg"; public const string DEFAULT_LOGO_IMAGE = @".\Images\ApplicationLogo.ico"; + + public const string APPLICATION_LOGGER_NAME = "ApplicationLogger"; + public const string PING_SERVER_LOGGER_NAME = "PingServerLogger"; + public const string PING_DOOR_DEVICE_CONTROL_ACCESS_LOGGER_NAME = "PingDoorDeviceControlAccessLogger"; } }