Log full exceptions

This commit is contained in:
2025-11-03 19:26:43 +09:00
parent a91dd6d034
commit 11a8fa381e
4 changed files with 26 additions and 3 deletions

View File

@ -1,5 +1,6 @@
using Hcs.WebApp.Data.Hcs; using Hcs.WebApp.Data.Hcs;
using Hcs.WebApp.Services; using Hcs.WebApp.Services;
using Hcs.WebApp.Utils;
namespace Hcs.WebApp.BackgroundServices.CampaignManagers namespace Hcs.WebApp.BackgroundServices.CampaignManagers
{ {
@ -26,7 +27,7 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers
public async Task EndWithFailAsync(Exception e) public async Task EndWithFailAsync(Exception e)
{ {
await HeadquartersService.SetCampaignEndedWithFailAsync(campaign.Id, e.Message); await HeadquartersService.SetCampaignEndedWithFailAsync(campaign.Id, e.CombineMessages());
State = IManager.ManagerState.Ended; State = IManager.ManagerState.Ended;
} }

View File

@ -4,6 +4,7 @@ using Hcs.Broker.MessageCapturer;
using Hcs.WebApp.BackgroundServices.OperationExecutors; using Hcs.WebApp.BackgroundServices.OperationExecutors;
using Hcs.WebApp.Config; using Hcs.WebApp.Config;
using Hcs.WebApp.Services; using Hcs.WebApp.Services;
using Hcs.WebApp.Utils;
using System.Transactions; using System.Transactions;
namespace Hcs.WebApp.BackgroundServices namespace Hcs.WebApp.BackgroundServices
@ -45,7 +46,7 @@ namespace Hcs.WebApp.BackgroundServices
} }
catch (Exception e) catch (Exception e)
{ {
await headquartersService.SetOperationEndedWithFailAsync(operation.Id, e.Message); await headquartersService.SetOperationEndedWithFailAsync(operation.Id, e.CombineMessages());
} }
if (!string.IsNullOrEmpty(messageGuid)) if (!string.IsNullOrEmpty(messageGuid))

View File

@ -5,6 +5,7 @@ using Hcs.WebApp.BackgroundServices.ResultGetters;
using Hcs.WebApp.Config; using Hcs.WebApp.Config;
using Hcs.WebApp.Data.Hcs; using Hcs.WebApp.Data.Hcs;
using Hcs.WebApp.Services; using Hcs.WebApp.Services;
using Hcs.WebApp.Utils;
namespace Hcs.WebApp.BackgroundServices namespace Hcs.WebApp.BackgroundServices
{ {
@ -80,7 +81,7 @@ namespace Hcs.WebApp.BackgroundServices
catch (Exception e) catch (Exception e)
{ {
var headquartersService = scope.ServiceProvider.GetRequiredService<HeadquartersService>(); var headquartersService = scope.ServiceProvider.GetRequiredService<HeadquartersService>();
await headquartersService.SetOperationEndedWithFailAsync(entry.operation.Id, e.Message); await headquartersService.SetOperationEndedWithFailAsync(entry.operation.Id, e.CombineMessages());
entry.state.done = true; entry.state.done = true;
} }

View File

@ -0,0 +1,20 @@
using System.Text;
namespace Hcs.WebApp.Utils
{
public static class ExceptionExtensions
{
public static string CombineMessages(this Exception e)
{
var stringBuilder = new StringBuilder();
var currentException = e;
while (currentException != null)
{
stringBuilder.AppendLine(currentException.Message);
currentException = currentException.InnerException;
}
return stringBuilder.ToString();
}
}
}