public override void Render(LogEvent logEvent, TokenEmitter emitToken) { if (logEvent.Exception is not null) { emitToken(logEvent.Exception.ToString()); } }
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { var moniker = LevelOutputFormat.GetLevelMoniker(logEvent.Level, _levelToken.Format); var alignedOutput = Padding.Apply(moniker, _levelToken.Alignment); emitToken(alignedOutput); }
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { if (_alignment is not null) { emitToken(Padding.Apply(Environment.NewLine, _alignment.Value.Widen(Environment.NewLine.Length))); } else { emitToken(Environment.NewLine); } }
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { var included = logEvent.Properties .Where(p => !TemplateContainsPropertyName(logEvent.MessageTemplate, p.Key) && !TemplateContainsPropertyName(_outputTemplate, p.Key)) .Select(p => new LogEventProperty(p.Key, p.Value)); foreach (var property in included) { emitToken(ObjectModelInterop.ToInteropValue(property.Value, _token.Format)); } }
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { // If a property is missing, don't render anything (message templates render the raw token here). if (!logEvent.Properties.TryGetValue(_token.PropertyName, out var propertyValue)) { if (_token.Alignment is not null) { emitToken(Padding.Apply(string.Empty, _token.Alignment)); } return; } var writer = new StringWriter(); // If the value is a scalar string, support some additional formats: 'u' for uppercase // and 'w' for lowercase. if (propertyValue is ScalarValue { Value : string literalString })
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { // We need access to ScalarValue.Render() to avoid this alloc; just ensures // that custom format providers are supported properly. var sv = new ScalarValue(logEvent.Timestamp); var buffer = new StringWriter(); sv.Render(buffer, _token.Format, _formatProvider); var str = buffer.ToString(); if (_token.Alignment is not null) { emitToken(Padding.Apply(str, _token.Alignment)); } else { emitToken(str); } }
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { foreach (var token in logEvent.MessageTemplate.Tokens) { switch (token) { case TextToken tt: emitToken(tt.Text); break; case PropertyToken pt: if (logEvent.Properties.TryGetValue(pt.PropertyName, out var propertyValue)) { emitToken(ObjectModelInterop.ToInteropValue(propertyValue)); } break; default: throw new InvalidOperationException(); } } }
public override void Render(LogEvent logEvent, TokenEmitter emitToken) { emitToken(_text); }