Skip to content

v4.0.150 – A Colourful release

Compare
Choose a tag to compare
@haf haf released this 10 Oct 16:13

Those who know me say I'm an F# guy, which I is, but Logary has functioned well with C# from the start. Version 4 hasn't been really 'made for' C# before this release though; as the core of Logary was vastly remade between v3 and v4. But with this release it's up-to-snuff again!

v4.0.150 contains a number of sweet improvements; all of them too numerous to list. However, here's a curated list:

  • The InfluxDB has been greatly improved with a model that allows you to pass both metrics and events to influx in a way that makes sense given the schema constraints that InfluxDb has
    • Events are logged into measurements corresponding to their respective levels: event_info, event_error, etc...
    • Fields are now placed as values to avoid indexing them inside Influx
    • Time[|Job|Async|Task] functions have been much improved
    • All TimeX functions now log nanosecond gauges.
  • The C# Facade has been much better tested and is now production quality
    • Most of it moved into the Logary core
    • Message-extensions are still in the Logary.CSharp nuget
    • Exposed ACKs through a Task based API
  • @adamchester has done a heap of excellent work with the new Literate target, which colourises the and colours console output nicely – you can even supply your own colour theme!
  • Message now also has static methods templateEvent that automatically match fs-messages style string templating to the passed parameters. (@adamchester)
  • A major bug was fixed in the code that logs to targets; logWithAck : Alt<Promise<unit>'s returned Promise now has the correct semantics – to await the flush of all targets that were matched for the Message. Similarly Logger.LogWithAck : Task<Task> is now exposed to the C# side of things – and all public API methods have xmldoc to make them easier to consume and understand.
  • Map.ofObject and Value.ofObject are now even more stable – even when you send objects whose properties throw exceptions into Logary (you sneaky, you!) (@adamchester)
  • A bunch of libraries have been upgraded, such as the Topshelf dependency for the Logary.Adapters.Topshelf nuget.
  • withMetrics and withInternalTargets are now synchronous, so you don't have to run them during configuration time.
  • In C# there's now Logger.TimeScope(pn : PointName) : IDisposable and in F# Logger.timeScope : Logger -> PointName -> IDisposable that lets you get Logary code out of your call-stack when profiling your code.

And lots more! Also, thanks to Lynx for sponsoring the improvements of the InfluxDb target!