AvalonLog is a fast and thread-safe WPF text log viewer for colored text. Including F# printf formatting. Based on AvalonEditB. Works on .NET Framework 4.7.2 and .NET 7.0+
Thread-safe means that it can be called from any thread.
Fast means
- 
it buffers repeated print calls and updates the view maximum 20 times per second. see source
 - 
Avalonedit is fast, the view is virtualized. It can easily handle thousands of lines.
 
Here an short example for F# interactive in .NET Framework. (for net9 you would have to use it in a project)
#r "PresentationCore"
#r "PresentationFramework"
#r "WindowsBase"
#r "nuget: AvalonLog"
open System.Windows
let log = new AvalonLog.AvalonLog() // The main class wrapping an Avalonedit TextEditor as append only log.
// create some printing functions by partial application:
let red   = log.printfColor 255 0 0  // without newline
let blue  = log.printfnColor 0 0 255 // with newline
let green = log.printfnColor 0 155 0 // with newline
// print to log using F# printf formatting
red   "Hello, "
blue  "World!"
red   "The answer"
green " is %d." (40 + 2)
Application().Run(Window(Content=log))  // show WPF windowthis will produce
public void AppendWithBrush(SolidColorBrush br, string s)and similar functions on the AvalonLog instance.
Caution
When used from C# add a reference to FSharp.Core 6.0.7 or higher.
AvalonLog is available as NuGet package.
Just run dotnet build
see CHANGELOG.md
Logo by LovePik

