Serilog.Sinks.RichTextBox.WinForms.Colored
1.2.0
See the version list below for details.
Requires NuGet 3.3 or higher.
dotnet add package Serilog.Sinks.RichTextBox.WinForms.Colored --version 1.2.0
NuGet\Install-Package Serilog.Sinks.RichTextBox.WinForms.Colored -Version 1.2.0
<PackageReference Include="Serilog.Sinks.RichTextBox.WinForms.Colored" Version="1.2.0" />
paket add Serilog.Sinks.RichTextBox.WinForms.Colored --version 1.2.0
#r "nuget: Serilog.Sinks.RichTextBox.WinForms.Colored, 1.2.0"
// Install Serilog.Sinks.RichTextBox.WinForms.Colored as a Cake Addin #addin nuget:?package=Serilog.Sinks.RichTextBox.WinForms.Colored&version=1.2.0 // Install Serilog.Sinks.RichTextBox.WinForms.Colored as a Cake Tool #tool nuget:?package=Serilog.Sinks.RichTextBox.WinForms.Colored&version=1.2.0
Serilog.Sinks.RichTextBox.WinForms.Colored
A Serilog sink that writes log events to any WinForms RichTextBox control with coloring and custom theme support.
Getting started
Install the Serilog.Sinks.RichTextBox.WinForms.Colored package from NuGet:
Install-Package Serilog.Sinks.RichTextBox.WinForms.Colored
Declare your RichTextBox control and give it a name that you can reference it from the code-behind. e.g.:
private System.Windows.Forms.RichTextBox richTextBox1;
private void InitializeComponent()
{
this.richTextBox1.BackColor = System.Drawing.SystemColors.Window;
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBox1.Font = new System.Drawing.Font("Consolas", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
this.richTextBox1.Location = new System.Drawing.Point(0, 0);
this.richTextBox1.Name = "richTextBox1";
}
Then enable the sink using the following snippet:
var options = new RichTextBoxSinkOptions(ThemePresets.Dark, 200, 5, true);
var sink = new RichTextBoxSink(richTextBox1, _options);
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Sink(sink, LogEventLevel.Verbose)
.Enrich.WithThreadId()
.CreateLogger();
Log.Information("Hello, world!");
Log events will be written to the RichTextBox
control:
[11:54:36 INF] Hello, world!
Themes
The following built-in themes are available at this time:
Theme | Description |
---|---|
ThemePresets.Dark |
Styled to replicate the default theme of Serilog.Sinks.Console |
ThemePresets.Light |
A theme with a light background and contrasting colors. |
Output templates
The format of events to the RichTextBox can be modified by providing a template renderer to the sink.
var options = new RichTextBoxSinkOptions(ThemePresets.Dark, 200, 5, true);
var renderer = new TemplateRenderer(ThemePresets.Dark, "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}");
var sink = new RichTextBoxSink(richTextBox1, _options, renderer);
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Sink(sink, LogEventLevel.Verbose)
.Enrich.WithThreadId()
.CreateLogger();
Log.Information("Hello, world!");
Copyright © 2022 Simon Vonhoff & Contributors - Provided under the Apache License, Version 2.0.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net8.0-windows was computed. |
-
net6.0-windows7.0
- Serilog (>= 3.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Added new logger configuration.
Added auto-scroll property.
Exposed the RichTextBox sink class.
Updated documentation.