Skip to content

Commit 2c12772

Browse files
committed
Add support for Serilog 4.0 built-in UtcTimestamp token in output template (OutputTemplateRenderer)
Implements serilog#164
1 parent cbcd22b commit 2c12772

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/Serilog.Sinks.Console/Sinks/SystemConsole/Output/OutputTemplateRenderer.cs

+5-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,11 @@ public OutputTemplateRenderer(ConsoleTheme theme, string outputTemplate, IFormat
6868
}
6969
else if (pt.PropertyName == OutputProperties.TimestampPropertyName)
7070
{
71-
renderers.Add(new TimestampTokenRenderer(theme, pt, formatProvider));
71+
renderers.Add(new TimestampTokenRenderer(theme, pt, formatProvider, convertToUtc: false));
72+
}
73+
else if (pt.PropertyName == OutputProperties.UtcTimestampPropertyName)
74+
{
75+
renderers.Add(new TimestampTokenRenderer(theme, pt, formatProvider, convertToUtc: true));
7276
}
7377
else if (pt.PropertyName == OutputProperties.PropertiesPropertyName)
7478
{

src/Serilog.Sinks.Console/Sinks/SystemConsole/Output/TimestampTokenRenderer.cs

+8-3
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,22 @@ class TimestampTokenRenderer : OutputTemplateTokenRenderer
2727
readonly ConsoleTheme _theme;
2828
readonly PropertyToken _token;
2929
readonly IFormatProvider? _formatProvider;
30+
readonly bool _convertToUtc;
3031

31-
public TimestampTokenRenderer(ConsoleTheme theme, PropertyToken token, IFormatProvider? formatProvider)
32+
public TimestampTokenRenderer(ConsoleTheme theme, PropertyToken token, IFormatProvider? formatProvider, bool convertToUtc)
3233
{
3334
_theme = theme;
3435
_token = token;
3536
_formatProvider = formatProvider;
36-
}
37+
_convertToUtc = convertToUtc;
38+
}
3739

3840
public override void Render(LogEvent logEvent, TextWriter output)
3941
{
40-
var sv = new DateTimeOffsetValue(logEvent.Timestamp);
42+
var timestamp = _convertToUtc
43+
? logEvent.Timestamp.ToUniversalTime()
44+
: logEvent.Timestamp;
45+
var sv = new DateTimeOffsetValue(timestamp);
4146

4247
var _ = 0;
4348
using (_theme.Apply(output, ConsoleThemeStyle.SecondaryText, ref _))

0 commit comments

Comments
 (0)