Serilog v2.0.0 Release Notes

    • #535 - .NET Core support; split sinks, enrichers and settings providers into standalone packages; refactor to eliminate Serilog.FullNetFx.dll; remove .NET 4.0 support
    • #566 - Log.CloseAndFlush()
    • #561 - detect and throw exception if LoggerConfiguration.CreateLogger() is called more than once
    • #617 - update project to use C# 6 where appropriate
    • Use R round-trip formatting when converting floating point values to JSON
    • #623 - PeriodicBatchingSink - reduce contention when enqueueing events to PeriodicBatchingSink
    • #618 - correctly handle VB.NET anonymous types when destructuring
    • #636 - support more enrichment scenarios in <appSettings>
    • #588 - enable LogContext on all target platforms
    • #654 - improved WriteTo.Logger() level and switch handling
    • #656 - FileSink - support buffered writes in file-based sinks
    • #649 - ColoredConsoleSink - do not print empty properties in colored console output
    • #719 - concrete, IDisposable return value from LoggerConfiguration.CreateLogger()
    • #727 - remove the unimplementable IScalarConversionPolicy interface
    • #728 - allow user-specified destructuring of reflection types
    • #711 and #765 - formatting for short, all-upper/all-lowercase and fixed-width level names in output templates
    • #747 - ForContext() performance improvements
    • #752 - zero-allocation generic methods on ILogger for up to three args
    • #746 - add BindMessageTemplate() and BindProperty() to ILogger
    • #731 - SelfLog API improvements
    • #754 - MinimumLevel.Override() per-source level overrides
    • #770 - message template parser optimization
    • #769 - BenchmarkDotNet performance tests for solution
    • #760 - TravisCI build on Mac OS and Linux
    • #772 - included LogEventPropertyValueVisitor and JsonValueFormatter
    • #776 - message template construction optimization
    • #733 - use ObjectHandle to wrap LogContext stack on remoting-capable targets; allows cross-AppDomain calls without Suspend() or PermitCrossAppDomainCalls, both removed
    • #781 - allow interface-typed values to be set in <appSettings> configuration by specifying an implementation type name