Skip to content

Commit aaba49d

Browse files
committed
Fixed casting of enum to string. This was causing an exception when converting LogLevel to string.
1 parent 41f65c7 commit aaba49d

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/JsonLogEventFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ void WriteIfPresent(StandardColumn col)
8181
var colData = traits.GetStandardColumnNameAndValue(col, logEvent);
8282
JsonValueFormatter.WriteQuotedJsonString(colData.Key, output);
8383
output.Write(":");
84-
string value = (col != StandardColumn.TimeStamp) ? (string)(colData.Value ?? string.Empty) : ((DateTime)colData.Value).ToString("o");
84+
string value = (col != StandardColumn.TimeStamp) ? (colData.Value ?? string.Empty).ToString() : ((DateTime)colData.Value).ToString("o");
8585
JsonValueFormatter.WriteQuotedJsonString(value, output);
8686
}
8787
}

test/Serilog.Sinks.MSSqlServer.Tests/TestMiscFeatures.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,40 @@ public void AutoCreateSchema()
233233
}
234234
}
235235

236+
[Trait("Bugfix", "#171")]
237+
[Fact]
238+
public void LogEventStoreAsEnum()
239+
{
240+
// arrange
241+
var columnOptions = new ColumnOptions();
242+
columnOptions.Level.StoreAsEnum = true;
243+
columnOptions.Store.Add(StandardColumn.LogEvent);
244+
245+
Log.Logger = new LoggerConfiguration()
246+
.WriteTo.MSSqlServer
247+
(
248+
connectionString: DatabaseFixture.LogEventsConnectionString,
249+
tableName: DatabaseFixture.LogTableName,
250+
columnOptions: columnOptions,
251+
autoCreateSqlTable: true
252+
)
253+
.CreateLogger();
254+
255+
// act
256+
Log.Logger
257+
.Information("Logging message");
258+
259+
Log.CloseAndFlush();
260+
261+
// assert
262+
using (var conn = new SqlConnection(DatabaseFixture.LogEventsConnectionString))
263+
{
264+
var logEventCount = conn.Query<LogEventColumn>($"SELECT Id from {DatabaseFixture.LogTableName}");
265+
266+
logEventCount.Should().HaveCount(1);
267+
}
268+
}
269+
236270
public void Dispose()
237271
{
238272
DatabaseFixture.DropTable();

0 commit comments

Comments
 (0)