Logo AvalonLog

Logo

AvalonLog

AvalonLog on nuget.org Build Status Docs Build Status license code size

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. A print call never waits for the UI thread.

Fast means

Use with F#

Here an short example for F# interactive in .NET Framework. (for net5 or higher 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

WPF window

Use in C#

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.

Full API Documentation

goswinr.github.io/AvalonLog

Download

AvalonLog is available as NuGet package.

How to build

Just run dotnet build

How to test

Run dotnet test. The tests in Tests run on .NET Framework 4.7.2 and .NET 8, they need Windows (WPF).

Changelog

see CHANGELOG.md

License

MIT

Logo by LovePik

namespace System
namespace System.Windows
val log: AvalonLog.AvalonLog
namespace AvalonLog
Multiple items

--------------------
new: unit -> AvalonLog.AvalonLog
val red: (string -> obj)
val blue: (string -> obj)
val green: (string -> int -> obj)

Type something to start searching.