Skip to content

Commit b0b4fca

Browse files
committed
Moved exception handler into SqlTableCreator.
1 parent b1e2aef commit b0b4fca

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

src/Serilog.Sinks.MSSqlServer/GlobalSuppressions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
[assembly: SuppressMessage("Globalization", "CA1303:Do not pass literals as localized parameters", Justification = "Supplying string literals and not using resources is accepted within this project.", Scope = "namespaceanddescendants", Target = "Serilog.Sinks.MSSqlServer")]
99
[assembly: SuppressMessage("Security", "CA2100:Review SQL queries for security vulnerabilities", Justification = "Too hard to change. Accepted for now.", Scope = "namespaceanddescendants", Target = "Serilog.Sinks.MSSqlServer")]
10-
[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Too hard to change. Accepted for now.", Scope = "member", Target = "~M:Serilog.Sinks.MSSqlServer.MSSqlServerSinkTraits.#ctor(System.String,System.String,Serilog.Sinks.MSSqlServer.ColumnOptions,System.IFormatProvider,System.Boolean,Serilog.Formatting.ITextFormatter,Serilog.Sinks.MSSqlServer.Platform.ISqlTableCreator)")]
10+
[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Too hard to change. Accepted for now.", Scope = "member", Target = "~M:Serilog.Sinks.MSSqlServer.Platform.SqlTableCreator.CreateTable(System.String,System.String,System.Data.DataTable,Serilog.Sinks.MSSqlServer.ColumnOptions)")]
1111
[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Too hard to change. Accepted for now.", Scope = "member", Target = "~M:Serilog.Sinks.MSSqlServer.MSSqlServerSink.EmitBatchAsync(System.Collections.Generic.IEnumerable{Serilog.Events.LogEvent})~System.Threading.Tasks.Task")]
1212
[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Too hard to change. Accepted for now.", Scope = "member", Target = "~M:Serilog.Sinks.MSSqlServer.Output.StandardColumnDataGenerator.ConvertPropertiesToXmlStructure(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,Serilog.Events.LogEventPropertyValue}})~System.String")]
1313
[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Too hard to change. Accepted for now.", Scope = "member", Target = "~M:Serilog.Sinks.MSSqlServer.Output.PropertiesColumnDataGenerator.TryChangeType(System.Object,System.Type,System.Object@)~System.Boolean")]

src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerSinkTraits.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,7 @@ internal MSSqlServerSinkTraits(
7777

7878
if (autoCreateSqlTable)
7979
{
80-
try
81-
{
82-
sqlTableCreator.CreateTable(_schemaName, _tableName, EventTable, _columnOptions); // return code ignored, 0 = failure?
83-
}
84-
catch (Exception ex)
85-
{
86-
SelfLog.WriteLine($"Exception creating table {tableName}:\n{ex}");
87-
}
80+
sqlTableCreator.CreateTable(_schemaName, _tableName, EventTable, _columnOptions);
8881
}
8982
}
9083

src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/Platform/ISqlTableCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ namespace Serilog.Sinks.MSSqlServer.Platform
44
{
55
internal interface ISqlTableCreator
66
{
7-
int CreateTable(string schemaName, string tableName, DataTable dataTable, ColumnOptions columnOptions);
7+
void CreateTable(string schemaName, string tableName, DataTable dataTable, ColumnOptions columnOptions);
88
}
99
}

src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/Platform/SqlTableCreator.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Data;
33
using System.Data.SqlClient;
4+
using Serilog.Debugging;
45
using Serilog.Sinks.MSSqlServer.Sinks.MSSqlServer.Platform;
56

67
namespace Serilog.Sinks.MSSqlServer.Platform
@@ -16,17 +17,23 @@ public SqlTableCreator(ISqlCreateTableWriter sqlCreateTableWriter, ISqlConnectio
1617
_sqlConnectionFactory = sqlConnectionFactory ?? throw new ArgumentNullException(nameof(sqlConnectionFactory));
1718
}
1819

19-
public int CreateTable(string schemaName, string tableName, DataTable dataTable, ColumnOptions columnOptions)
20+
public void CreateTable(string schemaName, string tableName, DataTable dataTable, ColumnOptions columnOptions)
2021
{
21-
using (var conn = _sqlConnectionFactory.Create())
22+
try
2223
{
23-
var sql = _sqlCreateTableWriter.GetSqlFromDataTable(schemaName, tableName, dataTable, columnOptions);
24-
using (var cmd = new SqlCommand(sql, conn))
24+
using (var conn = _sqlConnectionFactory.Create())
2525
{
26-
conn.Open();
27-
return cmd.ExecuteNonQuery();
26+
var sql = _sqlCreateTableWriter.GetSqlFromDataTable(schemaName, tableName, dataTable, columnOptions);
27+
using (var cmd = new SqlCommand(sql, conn))
28+
{
29+
conn.Open();
30+
cmd.ExecuteNonQuery();
31+
}
2832
}
29-
33+
}
34+
catch (Exception ex)
35+
{
36+
SelfLog.WriteLine($"Exception creating table {tableName}:\n{ex}");
3037
}
3138
}
3239
}

0 commit comments

Comments
 (0)