Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,16 @@ public KeyValuePair<string, object> GetStandardColumnNameAndValue(StandardColumn
case StandardColumn.Level:
return new KeyValuePair<string, object>(_columnOptions.Level.ColumnName, _columnOptions.Level.StoreAsEnum ? (object)logEvent.Level : logEvent.Level.ToString());
case StandardColumn.TraceId:
return new KeyValuePair<string, object>(_columnOptions.TraceId.ColumnName, logEvent.TraceId?.ToString());
var userDefaultTraceIdValue = logEvent.TraceId is null && !_columnOptions.TraceId.AllowNull;
return new KeyValuePair<string, object>(_columnOptions.TraceId.ColumnName, userDefaultTraceIdValue ? _columnOptions.TraceId.AsDataColumn().DefaultValue.ToString() : logEvent.TraceId?.ToString());
case StandardColumn.SpanId:
return new KeyValuePair<string, object>(_columnOptions.SpanId.ColumnName, logEvent.SpanId?.ToString());
var userDefaultSpanIdValue = logEvent.SpanId is null && !_columnOptions.SpanId.AllowNull;
return new KeyValuePair<string, object>(_columnOptions.SpanId.ColumnName, userDefaultSpanIdValue ? _columnOptions.SpanId.AsDataColumn().DefaultValue.ToString() : logEvent.SpanId?.ToString());
case StandardColumn.TimeStamp:
return GetTimeStampStandardColumnNameAndValue(logEvent);
case StandardColumn.Exception:
return new KeyValuePair<string, object>(_columnOptions.Exception.ColumnName, logEvent.Exception?.ToString().TruncateOutput(_columnOptions.Exception.DataLength));
var userDefaultExceptionValue = logEvent.Exception is null && !_columnOptions.Exception.AllowNull;
return new KeyValuePair<string, object>(_columnOptions.Exception.ColumnName, userDefaultExceptionValue ? _columnOptions.Exception.AsDataColumn().DefaultValue.ToString() : logEvent.Exception?.ToString().TruncateOutput(_columnOptions.Exception.DataLength));
case StandardColumn.Properties:
return new KeyValuePair<string, object>(_columnOptions.Properties.ColumnName, ConvertPropertiesToXmlStructure(logEvent.Properties));
case StandardColumn.LogEvent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,27 @@ public void GetStandardColumnNameAndNullValueForTraceIdReturnsLogLevelKeyValue()
Assert.Null(result.Value);
}

[Fact]
public void GetStandardColumnNameAndNullValueForTraceIdWithoutAllowNullReturnsLogLevelKeyValueEmpty()
{
// Arrange
var traceId = default(ActivityTraceId);
var logEvent = new LogEvent(
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
LogEventLevel.Debug, null, new MessageTemplate(new List<MessageTemplateToken>() { new TextToken("Test message") }),
new List<LogEventProperty>(), traceId, ActivitySpanId.CreateRandom());
var columnOptions = new MSSqlServer.ColumnOptions();
columnOptions.TraceId.AllowNull = false;
SetupSut(columnOptions, CultureInfo.InvariantCulture);

// Act
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.TraceId, logEvent);

// Assert
Assert.Equal("TraceId", result.Key);
Assert.Equal(string.Empty, result.Value);
}

[Fact]
public void GetStandardColumnNameAndValueForSpanIdReturnsLogLevelKeyValue()
{
Expand Down Expand Up @@ -339,6 +360,27 @@ public void GetStandardColumnNameAndNullValueForSpanIdReturnsLogLevelKeyValue()
Assert.Null(result.Value);
}

[Fact]
public void GetStandardColumnNameAndNullValueForSpanIdWithoutAllowNullReturnsLogLevelKeyValueEmpty()
{
// Arrange
var spanId = default(ActivitySpanId);
var logEvent = new LogEvent(
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
LogEventLevel.Debug, null, new MessageTemplate(new List<MessageTemplateToken>() { new TextToken("Test message") }),
new List<LogEventProperty>(), ActivityTraceId.CreateRandom(), spanId);
var columnOptions = new MSSqlServer.ColumnOptions();
columnOptions.SpanId.AllowNull = false;
SetupSut(columnOptions, CultureInfo.InvariantCulture);

// Act
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.SpanId, logEvent);

// Assert
Assert.Equal("SpanId", result.Key);
Assert.Equal(string.Empty, result.Value);
}

[Fact]
public void GetStandardColumnNameAndValueForLogLevelReturnsLogLevelKeyValueAsEnum()
{
Expand Down Expand Up @@ -487,6 +529,27 @@ public void GetStandardColumnNameAndValueForExceptionWhenCalledWithoutExceptionR
Assert.Null(result.Value);
}

[Fact]
public void GetStandardColumnNameAndValueForExceptionWhenCalledWithoutExceptionAndNotAllowedNullReturnsEmptyValue()
{
// Arrange
var logEvent = new LogEvent(
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
LogEventLevel.Debug, null, new MessageTemplate(new List<MessageTemplateToken>() { new TextToken("Test message") }),
new List<LogEventProperty>());
var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions();
columnOptions.Level.StoreAsEnum = true;
columnOptions.Exception.AllowNull = false;
SetupSut(columnOptions, CultureInfo.InvariantCulture);

// Act
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.Exception, logEvent);

// Assert
Assert.Equal("Exception", result.Key);
Assert.Equal(string.Empty, result.Value);
}

[Fact]
public void GetStandardColumnNameAndValueForPropertiesUsesRootElementName()
{
Expand Down
Loading