AvalonLog
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 6.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.
Usage
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 window
this will produce
For C# there is
|
and similar functions on the AvalonLog
instance.
Full API Documentation
Download
AvalonLog is available as NuGet package.
How to build
Just run dotnet build
Changelog
see CHANGELOG.md
License
Logo by LovePik
namespace System
namespace System.Windows
val log: AvalonLog.AvalonLog
namespace AvalonLog
Multiple items
--------------------
new: unit -> AvalonLog.AvalonLog
--------------------
new: unit -> AvalonLog.AvalonLog
val red: (string -> obj)
val blue: (string -> obj)
val green: (string -> int -> obj)