A Serilog sink that writes log events to any WPF RichTextBox control with coloring and custom theme support.
If you like or are using this project please give it a star. Thanks!
Install the Serilog.Sinks.RichTextBox.Wpf package from NuGet:
Install-Package Serilog.Sinks.RichTextBox.Wpf -Prerelease
Declare your RichTextBox control and give it a name that you can reference it from the code-behind. e.g.:
<Window (...)> <RichTextBox x:Name="MyRichTextBox" Background="Black" Foreground="LightGray" FontFamily="Cascadia Mono, Consolas, Courier New, monospace" VerticalScrollBarVisibility="Auto" /> </Window>
Then enable the sink using WriteTo.RichTextBox()
:
Log.Logger = new LoggerConfiguration() .WriteTo.RichTextBox(MyRichTextBox) .CreateLogger(); Log.Information("Hello, world!");
Log events will be written to the RichTextBox
control:
[11:54:36 INF] Hello, world!
The sink will colorize output by default:
Themes can be specified when configuring the sink:
.WriteTo.RichTextBox(MyRichTextBox, theme: RichTextBoxConsoleTheme.Grayscale)
The following built-in themes are available at this time:
Theme DescriptionRichTextBoxTheme.None
No styling. Uses default styles applied to the RichTextBox
control RichTextBoxConsoleTheme.Literate
Styled to replicate the default theme of Serilog.Sinks.Console; This is the default when no theme is specified RichTextBoxConsoleTheme.Grayscale
A theme using only shades of gray, white, and black RichTextBoxConsoleTheme.Colored
A theme based on the original Serilog.Sinks.ColoredConsole
sink
Adding a new theme is straightforward; examples can be found in the RichTextBoxConsoleThemes
class.
The format of events to the RichTextBox can be modified using the outputTemplate
configuration parameter:
.WriteTo.RichTextBox(MyRichTextBox, outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
The default template, shown in the example above, uses built-in properties like Timestamp
and Level
. Properties from events, including those attached using enrichers, can also appear in the output template.
Click on the Releases tab on GitHub.
Copyright © 2021-2023 C. Augusto Proiete & Contributors - Provided under the Apache License, Version 2.0.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4