NLog 4.5.0-rc07

NLog for .NET Framework and .NET Standard

NLog is a logging platform for .NET with rich log routing and management capabilities.

This is a prerelease version of NLog.
Install-Package NLog -Version 4.5.0-rc07
dotnet add package NLog --version 4.5.0-rc07
paket add NLog --version 4.5.0-rc07
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

NLog 4.5 adds structured logging and .NET Standard support/UPW without breaking changes! Also a lot features has been added!


# RC 7 summary:

- [#2612](https://github.com/nlog/nlog/pull/2612) add final param to `AddRule` Methods (#2612) (@893949088)
- [#2590](https://github.com/nlog/nlog/pull/2590) WebServiceTarget - JsonPost with support for single nameless parameter (@snakefoot)
- [#2604](https://github.com/nlog/nlog/pull/2604) FileTarget - Failing to CreateArchiveMutex should not stop logging (#2604) (@snakefoot)
- [#2592](https://github.com/nlog/nlog/pull/2592) Make Set methods of MDC and MDLC return IDisposable (#2592) (@MikeFH)
- [#2591](https://github.com/nlog/nlog/pull/2591) callsite-filename renderer (#2591) (@brunotag)
- [#2597](https://github.com/nlog/nlog/pull/2597) Replace WINDOWS_UWP with NETSTANDARD1_3 to support UWP10 shared libraries (@snakefoot)
- [#2599](https://github.com/nlog/nlog/pull/2599) TryImplicitConversion should only check object types (@snakefoot)
- [#2595](https://github.com/nlog/nlog/pull/2595) IsSafeToDeferFormatting - Convert.GetTypeCode is faster and better (@snakefoot)
- [#2609](https://github.com/nlog/nlog/pull/2609) NLog - Fix Callsite when wrapping ILogger in Microsoft Extension Logging (@snakefoot)
- [#2613](https://github.com/nlog/nlog/pull/2613) Attempt to make some unit-tests more stable (@snakefoot)
- [#2603](https://github.com/nlog/nlog/pull/2603) MultiFileWatcher - Improve error handling if FileSystemWatcher fails (@snakefoot)

- See also https://github.com/NLog/NLog/milestone/66?closed=1

# RC 6 summary:

- [#2576](https://github.com/NLog/NLog/pull/2576) Fix possible infinite loop in message template parser + better handling incorrect templates (@304NotModified, @snakefoot)
- [#2581](https://github.com/NLog/NLog/pull/2581) MessageTemplateParameter(s) ctors to internal (@304NotModified)
- See also https://github.com/NLog/NLog/milestone/63?closed=1

# RC 5 summary:

- [#2570](https://github.com/nlog/nlog/pull/2570) Update nuspec NLog.Config and NLog.Schema (@304NotModified)
- [#2542](https://github.com/nlog/nlog/pull/2542) Added TooManyStructuredParametersShouldKeepBeInParamList testcase (@304NotModified)
- [#2467](https://github.com/nlog/nlog/pull/2467) TargetWithContext - Easier to capture snapshot of MDLC and NDLC context (#2467) (@snakefoot)
- [#2555](https://github.com/nlog/nlog/pull/2555) JsonLayout - Added MaxRecursionLimit and set default to 0 (@snakefoot)
- [#2568](https://github.com/nlog/nlog/pull/2568) WebServiceTarget - Rollback added Group-Layout (@snakefoot)
- [#2544](https://github.com/nlog/nlog/pull/2544) MessageTemplate renderer with support for mixed mode templates (@snakefoot)
- [#2538](https://github.com/nlog/nlog/pull/2538) Renamed ValueSerializer to ValueFormatter (@snakefoot)
- [#2554](https://github.com/nlog/nlog/pull/2554) LogBuilder - Check level before allocation of Properties-dictionary (@snakefoot)
- [#2550](https://github.com/nlog/nlog/pull/2550) DefaultJsonSerializer - Reflection should skip index-item-properties (@snakefoot)
- [#2549](https://github.com/nlog/nlog/pull/2549) LoggingConfiguration - FindTargetByName should also find target + fix for logging on a target even after removed (@snakefoot)
- [#2548](https://github.com/nlog/nlog/pull/2548) IAppDomain.FriendlyName should also work on NetStandard15 (@snakefoot)
- [#2563](https://github.com/nlog/nlog/pull/2563) WebService-Target fails internally with PlatformNotSupportedException on NetCore (@snakefoot)
- [#2560](https://github.com/nlog/nlog/pull/2560) Network/NLogViewer/Chainsaw Target - Enabled OptimizeBufferReuse by default, but not for sub classes (@snakefoot)
- [#2551](https://github.com/nlog/nlog/pull/2551) Blackhole LoggingRule without targets (@snakefoot)
- [#2534](https://github.com/nlog/nlog/pull/2534) Docs for DefaultJsonSerializer/(i)ValueSerializer (#2534) (@304NotModified)
- [#2519](https://github.com/nlog/nlog/pull/2519) RegisterItemsFromAssembly - Include assemblies from nuget packages (Strict) (@304NotModified, @snakefoot)
- [#2524](https://github.com/nlog/nlog/pull/2524) FileTarget - Dynamic archive mode with more strict file-mask for cleanup (@snakefoot)
- [#2518](https://github.com/nlog/nlog/pull/2518) DatabaseTarget - Added DbProvider System.Data.SqlClient for NetStandard (@snakefoot)
- [#2514](https://github.com/nlog/nlog/pull/2514) Added missing docgen for different options (Less noise in appveyor) (@snakefoot)
- See also https://github.com/NLog/NLog/milestone/62?closed=1

# RC 4 summary:



- [#2490](https://github.com/nlog/nlog/pull/2490) LogEventInfo.MessageTemplateParameters as class instead of interface (#2490) (@snakefoot)
- [#2510](https://github.com/nlog/nlog/pull/2510) Database target entity framework connection string (@snakefoot)
- [#2513](https://github.com/nlog/nlog/pull/2513) Update docs for [AppDomainFixedOutput], remove [AppDomainFixedOutput] on ${currentDir} (@NLog)
- [#2512](https://github.com/nlog/nlog/pull/2512) LogManager.LoadConfiguration - Support relative paths by default (@snakefoot)
- [#2507](https://github.com/nlog/nlog/pull/2507) Reduce string allocations for logevents with single target destination (@snakefoot)
- [#2491](https://github.com/nlog/nlog/pull/2491) Added ${currentDir} (#2491) (@UgurAldanmaz)
- [#2500](https://github.com/nlog/nlog/pull/2500) ${gdc}, ${mdc} & {mdlc} - Support Format parameter (@snakefoot)
- [#2497](https://github.com/nlog/nlog/pull/2497) RegisterItemsFromAssembly - Include assemblies from nuget packages (Fix) (@snakefoot)
- [#2472](https://github.com/nlog/nlog/pull/2472) LogManager.LoadConfiguration - Prepare for custom config file readers (@snakefoot)
- [#2486](https://github.com/nlog/nlog/pull/2486) JsonConverter- Sanitize Exception.Data dictionary keys option (on by default) (@snakefoot)
- [#2495](https://github.com/nlog/nlog/pull/2495) MultiFileWatcher - Detach from FileSystemWatcher before disposing (@snakefoot)
- [#2493](https://github.com/nlog/nlog/pull/2493) RegisterItemsFromAssembly - Include assemblies from nuget packages (@snakefoot)
- [#2487](https://github.com/nlog/nlog/pull/2487) Adds version types to AssemblyVersion layout renderer  (#2487) (@alexangas)
- [#2464](https://github.com/nlog/nlog/pull/2464) Add methods to enabling/disabling LogLevels (@MikeFH)
- [#2477](https://github.com/nlog/nlog/pull/2477) fix typo (@heldersepu)
- [#2485](https://github.com/nlog/nlog/pull/2485) FileTarget - Dispose Archive-Mutex after completing file-archive (@snakefoot)
- [#2475](https://github.com/nlog/nlog/pull/2475) Fix XmlLoggingConfiguration reloading (@MikeFH)
- [#2471](https://github.com/nlog/nlog/pull/2471) TreatWarningsAsErrors = true (@snakefoot)
- [#2462](https://github.com/nlog/nlog/pull/2462) AsyncLogEventInfo - Removed private setter (@snakefoot)
- See also https://github.com/NLog/NLog/milestone/60?closed=1

# RC 3 summary

- File target: support for writing BOM (WriteBom option)
- Futher memory allocation improvements
- See https://github.com/NLog/NLog/milestone/59?closed=1

# RC 2 summary

- Support for UWP
- Added "regex-matches" condition method for filtering
- .NET Core: Improve auto loading of NLog extension dlls
- And more, see all details: https://github.com/NLog/NLog/milestone/58?closed=1

# List of important changes in NLog 4.5

## Features:

- Support for .Net Standard 1.5 #2341
- Support for .Net Standard 2.0 #2263 + #2402
- Support for UPW #2441
- Introduced Structured logging #2208 + #2262 + #2244
- Default file archive logic is now easier to use #1993
- Introduced InstallationContext.ThrowExceptions #2214
- WebServiceTarget can now batch multiple logevents into single request #2223
- WebServiceTarget - Allow configuration of proxy address #2375
- Json conversion also supports object properties #2179
- event-properties layout-renderer can now render objects as json #2241
- exception layout-renderer can now render exceptions as json #2357
- ${guid}, added GeneratedFromLogEvent #2226
- TraceTarget RawWrite to always perform Trace.WriteLine independent of LogLevel #1968
- Adding OverflowAction options to BufferingTargetWrapper #2276
- WhenRepeatedFilter #2123 + #2297
- ${callsite} added CleanNamesOfAsyncContinuations option #2292
- ${ndlctiming} allows timing of ndlc-scopes #2377
- NLogViewerTarget - Enable override of the Logger-name #2390
- ${sequenceid} added #2411
- Added "regex-matches" for filtering #2437
- File target: support for writing BOM (WriteBom option) #2456

## BugFixes:

- Improve archive stability during concurrent file access #1889
- FallbackGroup could lose log events #2265
- Exception separator should only be inserted for available items #2250
- ${exception} - only include separator when items are available #2257
- LogFactory - Fixes broken EventArgs for ConfigurationChanged #1897
- Do not report wrapped targets as unused targets #2290
- Added IIncludeContext, implemented missing properties #2117
- Improve logging of callsite linenumber for async-methods #2386
- NLogTraceListener - DisableFlush is enabled by default when AutoFlush=true #2407
- NLogViewer - Better defaults for connection limits #2404
- LoggingConfiguration.LoggingRules is not thread safe #2393, #2418

## Performance:

- More targets has OptimizeBufferReuse enabled by default #1913 + #1923 + #1912 + #1911 + #1910 + #1909 + #1908 + #1907
- StringBuilderPool - Improved Layout Render Performance by reusing StringBuilders #2208
- JsonLayout - Improved Layout Performance, by optimizing use of StringBuilder #2208
- FileTarget - Faster byte-encoding of log messsages, by using crude Encoding.GetMaxByteCount() instead of exact Encoding.GetByteCount() #2208
- Target - Precalculate Layout should ignore sub-layouts for complex layout (Ex Json) #2378

Version History

Version Downloads Last updated
4.5.3 30,099 4/16/2018
4.5.2 46,947 4/6/2018
4.5.1 17,755 4/3/2018
4.5.0 66,099 3/25/2018
4.5.0-rc07 (current version) 18,195 3/8/2018
4.5.0-rc06 41,253 2/20/2018
4.5.0-rc05 10,336 2/13/2018
4.5.0-rc04 62,655 1/15/2018
4.5.0-rc03 38,951 12/11/2017
4.5.0-rc02 72,710 12/4/2017
4.5.0-rc01 11,923 11/23/2017
4.4.13 89,467 2/27/2018
4.4.12 1,001,110 8/8/2017
4.4.11 393,811 6/17/2017
4.4.10 136,387 5/31/2017
4.4.9 220,070 5/5/2017
4.4.8 49,202 4/28/2017
4.4.7 37,764 4/25/2017
4.4.6 88,590 4/15/2017
4.4.5 152,685 3/28/2017
4.4.4 135,853 3/10/2017
4.4.3 219,483 2/17/2017
4.4.2 138,690 2/6/2017
4.4.1 312,910 12/24/2016
4.4.0 109,918 12/14/2016
4.3.11 352,511 11/7/2016
4.3.10 243,454 10/11/2016
4.3.9 193,716 9/18/2016
4.3.8 214,839 9/5/2016
4.3.7 235,006 8/6/2016
4.3.6 134,129 7/23/2016
4.3.5 354,716 6/12/2016
4.3.4 275,597 5/16/2016
4.3.3 119,172 4/28/2016
4.3.2 39,456 4/26/2016
4.3.1 58,216 4/20/2016
4.3.0 32,272 4/16/2016
4.2.3 611,412 12/20/2015
4.2.2 116,584 12/2/2015
4.2.1 75,415 11/21/2015
4.2.0 172,930 10/24/2015
4.1.2 293,548 9/20/2015
4.1.1 50,026 9/12/2015
4.1.0 88,654 8/31/2015
4.0.1 341,055 6/18/2015
4.0.0 152,256 6/9/2015
3.2.1 256,824 4/24/2015
3.2.0 616,898 1/2/2015
3.1.0 663,931 6/24/2014
3.0.0 107,153 6/2/2014
2.1.0 526,767 10/10/2013
2.0.1.2 373,060 4/8/2013
2.0.0.2000 566,567 7/18/2011
1.0.0.505 74,402 1/7/2011
Show less