v4.0.150 – A Colourful release
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.
- Events are logged into measurements corresponding to their respective levels:
- 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 methodstemplateEvent
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 theMessage
. SimilarlyLogger.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
andValue.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
andwithInternalTargets
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!