csharp
複製程式碼
///
/// 員工資料刪除
///
/// 要刪除的Key值
///
[HttpGet]
public async Task Delete(int id = 0)
{
if (id <= 0)
{
_logger.LogWarning("Delete operation failed: Invalid ID provided.");
return BadRequest("Invalid ID.");
}
// 日誌記錄即將刪除的員工ID
_logger.LogInformation($"Attempting to delete employee with ID: {id}");
try
{
// 執行刪除資料
using var repoEmp = new z_sqlEmployees();
await repoEmp.DeleteAsync(id);
_logger.LogInformation($"Successfully deleted employee with ID: {id}");
}
catch (Exception ex)
{
_logger.LogError(ex, $"Error occurred while deleting employee with ID: {id}");
return StatusCode(500, "Internal server error");
}
// 返回員工資料列表
return RedirectToAction("Index", "EmployeeAsync", new { area = "Admin" });
}
2. 配置日誌記錄器
確保你已經在 Startup.cs 中正確配置了日誌記錄器。如果使用 ASP.NET Core 的內建日誌記錄,通常會自動配置。你可以在 ConfigureServices 方法中檢查如下配置:
csharp
複製程式碼
public void ConfigureServices(IServiceCollection services)
{
// 其他服務註冊
services.AddLogging(); // 確保日誌服務已經註冊
}
3. 查看日誌輸出
運行你的應用程式,並執行刪除操作。在控制台(或日誌文件)中查看輸出的日誌訊息。確保日誌輸出到正確的位置,可以是控制台、文件,或任何配置的日誌提供者。你可以在 appsettings.json 中配置日誌輸出,例如:
json
複製程式碼
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
"Console": {
"LogLevel": {
"Default": "Information"
}
},
"File": {
"LogLevel": {
"Default": "Information"
},
"FilePath": "logs/myapp.log"
}
}
4. 確認刪除邏輯
確保在 DeleteAsync 方法中,刪除的 SQL 查詢是正確的。你可以在 DeleteAsync 中添加日誌以顯示生成的 SQL 查詢和參數,如下所示:
csharp
複製程式碼
public virtual async Task DeleteAsync(int id = 0)
{
string str_query = dpr.GetSQLDeleteCommand(EntityObject);
DynamicParameters parm = dpr.GetSQLDeleteParameters(EntityObject, id);
// 記錄 SQL 語句和參數
_logger.LogInformation($"Generated SQL Query: {str_query}");
_logger.LogInformation("Parameters: ");
foreach (var param in parm.ParameterNames)
{
_logger.LogInformation($"{param}: {parm.Get<dynamic>(param)}");
}
await dpr.ExecuteAsync(str_query, parm);
}
5. 測試
啟動應用程式並在控制台中觀察日誌輸出。
嘗試刪除員工資料,並檢查日誌以確認刪除操作是否被記錄,並且是否有任何錯誤信息。