Skip to content

Commit 9400e11

Browse files
committed
fixes #115 - do not map message properties to standard columns
1 parent 3fa70cd commit 9400e11

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ internal sealed class MSSqlServerSinkTraits : IDisposable
3535
public JsonFormatter JsonFormatter { get; }
3636
public ISet<string> AdditionalDataColumnNames { get; }
3737
public DataTable EventTable { get; }
38+
public List<string> ExcludedColumnNames { get; }
3839

3940
public MSSqlServerSinkTraits(string connectionString, string tableName, string schemaName, ColumnOptions columnOptions, IFormatProvider formatProvider, bool autoCreateSqlTable)
4041
{
@@ -50,6 +51,11 @@ public MSSqlServerSinkTraits(string connectionString, string tableName, string s
5051
ColumnOptions = columnOptions ?? new ColumnOptions();
5152
FormatProvider = formatProvider;
5253

54+
ExcludedColumnNames = new List<string>(ColumnOptions.Store.Count + 1);
55+
ExcludedColumnNames.Add("id");
56+
foreach (var column in ColumnOptions.Store)
57+
ExcludedColumnNames.Add(column.ToString());
58+
5359
if (ColumnOptions.AdditionalDataColumns != null)
5460
AdditionalDataColumnNames = new HashSet<string>(ColumnOptions.AdditionalDataColumns.Select(c => c.ColumnName), StringComparer.OrdinalIgnoreCase);
5561

@@ -183,13 +189,14 @@ private string ConvertPropertiesToXmlStructure(IEnumerable<KeyValuePair<string,
183189
/// <summary>
184190
/// Mapping values from properties which have a corresponding data row.
185191
/// Matching is done based on Column name and property key
192+
/// Standard columns are not mapped
186193
/// </summary>
187194
/// <param name="properties"></param>
188195
private IEnumerable<KeyValuePair<string, object>> ConvertPropertiesToColumn(IReadOnlyDictionary<string, LogEventPropertyValue> properties)
189196
{
190197
foreach (var property in properties)
191198
{
192-
if (!EventTable.Columns.Contains(property.Key))
199+
if (!EventTable.Columns.Contains(property.Key) || ExcludedColumnNames.Contains(property.Key))
193200
continue;
194201

195202
var columnName = property.Key;

0 commit comments

Comments
 (0)