Улучшена обработка ошибок

- Дополнена информация об исключении при экспорте / чтении логов
- Обновлены используемые библиотеки
- Актуализированы примеры приложений
This commit is contained in:
YPermitin
2021-07-22 21:59:25 +05:00
parent 32bca861e9
commit ddabe09484
7 changed files with 31 additions and 11 deletions
@@ -27,9 +27,10 @@ namespace YY.TechJournalExportAssistantWithSharedBufferConsoleApp
Console.WriteLine("Good luck & bye!");
}
private static void OnError(OnErrorExportSharedBufferEventArgs args)
private static void OnError(OnErrorExportSharedBufferEventArgs e)
{
Console.WriteLine($"Ошибка при экспорте логов: {args.Exception}");
Console.WriteLine($"Log name: {e?.Exception?.Settings?.Name ?? "Unknown"}\n" +
$"Error info: {e.Exception.ToString()}");
}
private static void OnSend(OnSendLogFromSharedBufferEventArgs args)
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.1.3</Version>
<Version>1.0.1.5</Version>
<Authors>Permitin Yuriy</Authors>
<Product>Technological journal's export assistant to ClickHouse</Product>
<Description>Library for exporting 1C:Enterprise 8.x platform's technological journal files to ClickHouse</Description>
@@ -1,14 +1,14 @@
using System;
using YY.TechJournalExportAssistant.Core.SharedBuffer.Exceptions;
namespace YY.TechJournalExportAssistant.Core.SharedBuffer.EventArgs
{
public sealed class OnErrorExportSharedBufferEventArgs : System.EventArgs
{
public OnErrorExportSharedBufferEventArgs(Exception exception)
public OnErrorExportSharedBufferEventArgs(ExportSharedBufferException exception)
{
Exception = exception;
}
public Exception Exception { get; }
public ExportSharedBufferException Exception { get; }
}
}
@@ -0,0 +1,15 @@
using System;
namespace YY.TechJournalExportAssistant.Core.SharedBuffer.Exceptions
{
public class ExportSharedBufferException : Exception
{
public TechJournalSettings.LogSourceSettings Settings { get; }
public ExportSharedBufferException(string message, Exception innerException, TechJournalSettings.LogSourceSettings settings)
: base(message, innerException)
{
Settings = settings;
}
}
}
@@ -6,6 +6,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using YY.TechJournalExportAssistant.Core.SharedBuffer.EventArgs;
using YY.TechJournalExportAssistant.Core.SharedBuffer.Exceptions;
using YY.TechJournalReaderAssistant;
namespace YY.TechJournalExportAssistant.Core.SharedBuffer
@@ -164,7 +165,8 @@ namespace YY.TechJournalExportAssistant.Core.SharedBuffer
}
catch (Exception e)
{
RaiseOnError(new OnErrorExportSharedBufferEventArgs(e));
RaiseOnError(new OnErrorExportSharedBufferEventArgs(
new ExportSharedBufferException("Log export job failed.", e, settings)));
await Task.Delay(60000, cancellationToken);
}
}
@@ -220,7 +222,8 @@ namespace YY.TechJournalExportAssistant.Core.SharedBuffer
}
catch (Exception e)
{
RaiseOnError(new OnErrorExportSharedBufferEventArgs(e));
RaiseOnError(new OnErrorExportSharedBufferEventArgs(
new ExportSharedBufferException("Send log from buffer failed.", e, null)));
await Task.Delay(60000, cancellationToken);
}
}
@@ -254,7 +257,8 @@ namespace YY.TechJournalExportAssistant.Core.SharedBuffer
}
private void OnErrorExportDataToBuffer(OnErrorExportDataEventArgs e)
{
RaiseOnError(new OnErrorExportSharedBufferEventArgs(e.Exception));
RaiseOnError(new OnErrorExportSharedBufferEventArgs(
new ExportSharedBufferException("Export data to buffer failed.", e.Exception, null)));
}
#endregion
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.1.3</Version>
<Version>1.0.1.5</Version>
<Authors>Permitin Yuriy</Authors>
<Product>Technological journal's export assistant. Core library</Product>
<Description>Core library for exporting 1C:Enterprise 8.x platform's technological journal files to different storage</Description>
@@ -16,7 +16,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.3">
<PackageReference Include="coverlet.collector" Version="3.1.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>