README.md |
---|
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 | Description |
---|---|
RichTextBoxTheme.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.