All Versions
122
Latest Version
Avg Release Cycle
88 days
Latest Release
4 days ago

Changelog History
Page 7

  • v4.5 Changes

    March 25, 2018

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

    List of important changes in NLog 4.5

    ๐Ÿ”‹ Features
    • ๐Ÿ‘Œ Support for .Net Standard 2.0 #2263 + #2402 (@snakefoot)
    • ๐Ÿ‘Œ Support for .Net Standard 1.5 #2341 (@snakefoot)
    • ๐Ÿ‘Œ Support for .Net Standard 1.3 (and UWP) #2441 + #2597 (Remember to manually flush on app suspend). (@snakefoot)
    • ๐Ÿ‘€ Introduced Structured logging #2208 + #2262 + #2244 + #2544 (@snakefoot, @304NotModified, @jods4, @nblumhardt) - see https://github.com/NLog/NLog/wiki/How-to-use-structured-logging
    • ๐Ÿ‘ Json conversion also supports object properties #2179, #2555 (@snakefoot, @304NotModified)
    • event-properties layout-renderer can now render objects as json #2241 (@snakefoot, @304NotModified)
    • ๐Ÿ‘ป exception layout-renderer can now render exceptions as json #2357 (@snakefoot)
    • 0๏ธโƒฃ Default file archive logic is now easier to use #1993 (@snakefoot)
    • Introduced InstallationContext.ThrowExceptions #2214 (@rbarillec)
    • ๐Ÿ”ง WebServiceTarget - Allow configuration of proxy address #2375 (@snakefoot)
    • WebServiceTarget - JsonPost with JsonLayout without being wrapped in parameter #2590 (@snakefoot)
    • ${guid}, added GeneratedFromLogEvent #2226 (@snakefoot)
    • TraceTarget RawWrite to always perform Trace.WriteLine independent of LogLevel #1968 (@snakefoot)
    • โž• Adding OverflowAction options to BufferingTargetWrapper #2276 (@mikegron)
    • WhenRepeatedFilter - Filtering of identical LogEvents #2123 + #2297 (@snakefoot)
    • ${callsite} added CleanNamesOfAsyncContinuations option #2292 (@tkhaugen, @304NotModified)
    • ${ndlctiming} allows timing of ndlc-scopes #2377 (@snakefoot)
    • NLogViewerTarget - Enable override of the Logger-name #2390 (@snakefoot)
    • ${sequenceid} added #2411 (@MikeFH)
    • โž• Added "regex-matches" for filtering #2437 (@MikeFH)
    • ๐Ÿ‘ ${gdc}, ${mdc} & {mdlc} - Support Format parameter #2500 (@snakefoot)
    • ${currentDir} added #2491 (@UgurAldanmaz)
    • ${AssemblyVersion}: add type (File, Assembly, Informational) option #2487 (@alexangas)
    • ๐Ÿ‘ FileTarget: Support byte order mark #2456 (@KYegres)
    • ๐Ÿ‘ TargetWithContext - Easier to create custom NLog targets with support for MDLC and NDLC #2467 (@snakefoot)
    • ${callname-filename} - Without line number #2591 (@brunotag)
    • ๐Ÿ‘ MDC + MDLC with SetScoped property support #2592 (@MikeFH)
    • LoggingConfiguration AddRule includes final-parameter #2612 (@893949088)
    ๐Ÿ›  Fixes
    • ๐Ÿ‘Œ Improve archive stability during concurrent file access #1889 (@snakefoot)
    • ๐ŸŒฒ FallbackGroup could lose log events #2265 (@frabar666)
    • ๐Ÿ‘ป ${exception} - only include separator when items are available #2257 (@jojosardez)
    • ๐Ÿ”ง LogFactory - Fixes broken EventArgs for ConfigurationChanged #1897 (@snakefoot)
    • Do not report wrapped targets as unused targets #2290 (@thesmallbang)
    • โž• Added IIncludeContext, implemented missing properties #2117 (@304NotModified)
    • ๐Ÿ‘Œ Improve logging of callsite linenumber for async-methods #2386 (@snakefoot)
    • 0๏ธโƒฃ NLogTraceListener - DisableFlush is enabled by default when AutoFlush=true #2407 (@snakefoot)
    • 0๏ธโƒฃ NLogViewer - Better defaults for connection limits #2404 (@304NotModified)
    • LoggingConfiguration.LoggingRules is not thread safe #2393, #2418
    • ๐Ÿ›  Fix XmlLoggingConfiguration reloading #2475 (@snakefoot)
    • ๐Ÿ‘ Database Target now supports EntityFramework ConnectionStrings #2510 (@Misiu, @snakefoot)
    • ๐Ÿšš LoggingConfiguration.RemoveTarget now works while actively logging #2549 (@jojosardez, @snakefoot)
    • ๐Ÿ‘ FileTarget does not fail on platforms without global mutex support #2604 (@snakefoot)
    • LoggingConfiguration does not fail when AutoReload is not possible on the platforms without FileWatcher #2603 (@snakefoot)
    ๐ŸŽ Performance
    • โšก๏ธ More targets has OptimizeBufferReuse enabled by default #1913 + #1923 + #1912 + #1911 + #1910 + #1909 + #1908 + #1907 + #2560 (@snakefoot)
    • ๐ŸŽ StringBuilderPool - Improved Layout Render Performance by reusing StringBuilders #2208 (@snakefoot)
    • ๐ŸŽ JsonLayout - Improved Layout Performance, by optimizing use of StringBuilder #2208 (@snakefoot)
    • ๐ŸŒฒ FileTarget - Faster byte-encoding of log messsages, by using crude Encoding.GetMaxByteCount() instead of exact Encoding.GetByteCount() #2208 (@snakefoot)
    • Target - Precalculate Layout should ignore sub-layouts for complex layout (Ex Json) #2378 (@snakefoot)
    • MessageLayoutRenderer - Skip string.Format allocation (for caching) when writing to a single target, instead format directly into output buffer. #2507 (@snakefoot)

    ๐Ÿ”„ Changes since rc 07:

    • ๐Ÿ”จ #2621 Single Target optimization logic refactored to reuse optimization approval (@snakefoot)
    • #2622 NetworkTarget - Http / Https should not throw on async error response (@snakefoot)
    • #2619 NetworkTarget - Reduce allocation when buffer is less than MaxMessageSize (@snakefoot)
    • #2616 LogManager.Shutdown - Should disable file watcher and avoid auto reload (@snakefoot)
    • ๐Ÿ“œ #2620 Single Target optimization should only be done when parseMessageTemplate = null (@snakefoot)
  • v4.5-rc07 Changes

    March 07, 2018
    • #2614 NLog 4.5 RC7 changelog & version (@304NotModified)
    • #2612 add final param to AddRule Methods (#2612) (@893949088)
    • ๐Ÿ‘ #2590 WebServiceTarget - JsonPost with support for single nameless parameter (@snakefoot)
    • ๐ŸŒฒ #2604 FileTarget - Failing to CreateArchiveMutex should not stop logging (#2604) (@snakefoot)
    • #2592 Make Set methods of MDC and MDLC return IDisposable (#2592) (@MikeFH)
    • #2591 callsite-filename renderer (#2591) (@brunotag)
    • #2597 Replace WINDOWS_UWP with NETSTANDARD1_3 to support UWP10 shared libraries (@snakefoot)
    • #2599 TryImplicitConversion should only check object types (@snakefoot)
    • ๐Ÿ‘ #2595 IsSafeToDeferFormatting - Convert.GetTypeCode is faster and better (@snakefoot)
    • ๐ŸŒฒ #2609 NLog - Fix Callsite when wrapping ILogger in Microsoft Extension Logging (@snakefoot)
    • โœ… #2613 Attempt to make some unit-tests more stable (@snakefoot)
    • #2603 MultiFileWatcher - Improve error handling if FileSystemWatcher fails (@snakefoot)
  • v4.5-rc06 Changes

    February 20, 2018
    • #2585 NLog 4.5 rc6 version and changelog (#2585) (@304NotModified)
    • #2581 MessageTemplateParameter(s) ctors to internal (@304NotModified)
    • ๐Ÿ“œ #2576 Fix possible infinite loop in message template parser + better handling incorrect templates (@304NotModified)
    • #2580 ColoredConsoleTarget.cs: Fix typo (@perlun)
  • v4.5-rc05 Changes

    February 13, 2018
    • ๐Ÿš€ #2571 4.5 rc5 version and release notes (@304NotModified)
    • #2572 copyright 2018 (@304NotModified)
    • โšก๏ธ #2570 Update nuspec NLog.Config and NLog.Schema (@304NotModified)
    • โœ… #2542 Added TooManyStructuredParametersShouldKeepBeInParamList testcase (@304NotModified)
    • #2467 TargetWithContext - Easier to capture snapshot of MDLC and NDLC context (#2467) (@snakefoot)
    • 0๏ธโƒฃ #2555 JsonLayout - Added MaxRecursionLimit and set default to 0 (@snakefoot)
    • โช #2568 WebServiceTarget - Rollback added Group-Layout (@snakefoot)
    • ๐Ÿ‘ #2544 MessageTemplate renderer with support for mixed mode templates (@snakefoot)
    • #2538 Renamed ValueSerializer to ValueFormatter (@snakefoot)
    • #2554 LogBuilder - Check level before allocation of Properties-dictionary (@snakefoot)
    • 0๏ธโƒฃ #2550 DefaultJsonSerializer - Reflection should skip index-item-properties (@snakefoot)
    • ๐Ÿšš #2549 LoggingConfiguration - FindTargetByName should also find target + fix for logging on a target even after removed (@snakefoot)
    • #2548 IAppDomain.FriendlyName should also work on NetStandard15 (@snakefoot)
    • ๐Ÿ‘ #2563 WebService-Target fails internally with PlatformNotSupportedException on NetCore (@snakefoot)
    • โšก๏ธ #2560 Network/NLogViewer/Chainsaw Target - Enabled OptimizeBufferReuse by default, but not for sub classes (@snakefoot)
    • #2551 Blackhole LoggingRule without targets (@snakefoot)
    • 0๏ธโƒฃ #2534 Docs for DefaultJsonSerializer/(i)ValueSerializer (#2534) (@304NotModified)
    • ๐Ÿ“ฆ #2519 RegisterItemsFromAssembly - Include assemblies from nuget packages (Strict) (@304NotModified, @snakefoot)
    • #2524 FileTarget - Dynamic archive mode with more strict file-mask for cleanup (@snakefoot)
    • #2518 DatabaseTarget - Added DbProvider System.Data.SqlClient for NetStandard (@snakefoot)
    • #2514 Added missing docgen for different options (Less noise in appveyor) (@snakefoot)
  • v4.5-rc04 Changes

    January 15, 2018
    • #2490 LogEventInfo.MessageTemplateParameters as class instead of interface (#2490) (@snakefoot)
    • #2510 Database target entity framework connection string (@snakefoot)
    • โšก๏ธ #2513 Update docs for [AppDomainFixedOutput], remove [AppDomainFixedOutput] on ${currentDir} (@NLog)
    • 0๏ธโƒฃ #2512 LogManager.LoadConfiguration - Support relative paths by default (@snakefoot)
    • #2507 Reduce string allocations for logevents with single target destination (@snakefoot)
    • #2491 Added ${currentDir} (#2491) (@UgurAldanmaz)
    • ๐Ÿ‘ #2500 ${gdc}, ${mdc} & {mdlc} - Support Format parameter (@snakefoot)
    • ๐Ÿ“ฆ #2497 RegisterItemsFromAssembly - Include assemblies from nuget packages (Fix) (@snakefoot)
    • #2472 LogManager.LoadConfiguration - Prepare for custom config file readers (@snakefoot)
    • 0๏ธโƒฃ #2486 JsonConverter- Sanitize Exception.Data dictionary keys option (on by default) (@snakefoot)
    • #2495 MultiFileWatcher - Detach from FileSystemWatcher before disposing (@snakefoot)
    • ๐Ÿ“ฆ #2493 RegisterItemsFromAssembly - Include assemblies from nuget packages (@snakefoot)
    • #2487 Adds version types to AssemblyVersion layout renderer (#2487) (@alexangas)
    • #2464 Add methods to enabling/disabling LogLevels (@MikeFH)
    • #2477 fix typo (@heldersepu)
    • #2485 FileTarget - Dispose Archive-Mutex after completing file-archive (@snakefoot)
    • #2475 Fix XmlLoggingConfiguration reloading (@MikeFH)
    • โš  #2471 TreatWarningsAsErrors = true (@snakefoot)
    • ๐Ÿšš #2462 AsyncLogEventInfo - Removed private setter (@snakefoot)
  • v4.5-rc03 Changes

    December 11, 2017
    • #2460 NLog 4.5 rc3 version and changelog (@304NotModified)
    • โšก๏ธ #2459 StringBuilderExt.CopyToStream - Optimize MemoryStream allocation (@snakefoot)
    • ๐Ÿ‘ #2456 FileTarget: Support byte order mark (optional) (#2456) (@KYegres)
    • #2453 NestedDiagnosticsContext - Only allocate Stack-object on Write (@snakefoot)
    • ๐Ÿ”จ #2458 Document and (minor) refactor on MruCache class (@ie-zero)
    • #2452 ThreadLocalStorageHelper - NetStandard only allocate when needed (@snakefoot)
  • v4.5-rc02 Changes

    December 04, 2017
    • #2444 NLog 4.5 RC2 version and changelog (@304NotModified)
    • #2450 No need to call type(T) (@304NotModified)
    • ๐ŸŒฒ #2451 FileTarget - Improved and less internal logging (@snakefoot)
    • ๐Ÿ”จ #2449 Refactor: fix comment, remove unused, cleanup, String ->` string etc (#2449) (@304NotModified)
    • #2447 CallSiteInformation - Prepare for fast classname lookup from filename and linenumber (@snakefoot)
    • ๐Ÿ”จ #2446 Refactor - split methodes, remove duplicates (#2446) (@304NotModified)
    • #2437 Create regex-matches condition method (#2437) (@MikeFH)
    • ๐Ÿ‘ #2441 Support for UWP platform (@snakefoot)
    • ๐Ÿ‘ #2439 Better config Better Code Hub (@304NotModified)
    • #2431 NetCoreApp - Improve auto loading of NLog extension dlls (@snakefoot)
    • ๐Ÿ”’ #2418 LoggingConfiguration - Modify and clone LoggingRules under lock (@snakefoot)
    • ๐Ÿ”’ #2422 Avoid unnecessary string-allocation, skip unnecessary lock (@snakefoot)
    • ๐Ÿšš #2419 Logger - Added missing MessageTemplateFormatMethodAttribute + removed obsolete internal method (@snakefoot)
    • #2421 Changed IIncludeContext to internal interface until someone needs it (@snakefoot)
    • #2417 IsMono - Cache Type.GetType to avoid constant AppDomain.TypeResolve events (@snakefoot)
    • ๐Ÿ”€ #2420 Merged CallSite Test from PR1812 (@snakefoot)
  • v4.5-rc01 Changes

    November 23, 2017
    • โช #2414 Revert breaking change of NestedDiagnosticsLogicalContext.Pop() (@304NotModified)
    • ๐Ÿšš #2415 NetStandard15 - Moved dependency System.Xml.XmlSerializer to NLog.Wcf (@snakefoot)
    • #2413 NestedDiagnosticsLogicalContext - Protect against double dispose (@snakefoot)
    • โœ… #2412 MessageTemplate - Render test of DateTime, TimeSpan, DateTimeOffset (@snakefoot)
    • #2411 Create SequenceIdLayoutRenderer (@MikeFH)
    • โช #2409 Revert "Avoid struct copy on readonly field access" (@snakefoot)
    • #2403 NLog 4.5 beta 8 (@304NotModified)
    • #2406 From [StringFormatMethod] to [MessageTemplateFormatMethod] (@304NotModified)
    • ๐Ÿ #2402 Introduced NLog.Wcf and Nlog.WindowsIdentity for .NET standard (@snakefoot)
    • โšก๏ธ #2404 Updated NLog viewer target defaults (@304NotModified)
    • โœ… #2405 Added unit test for JsonLayout - serialize of objects (@304NotModified)
    • 0๏ธโƒฃ #2407 NLogTraceListener - set DisableFlush true by default (@snakefoot)
    • ๐Ÿ‘ #2401 MailTarget is supported by NetStandard2.0 (but without SmtpSection) (@snakefoot)
    • ๐Ÿ›  #2398 Log4JXml - Fixed initalization of XmlWriterSettings for IndentXml (@snakefoot)
    • ๐Ÿšš #2386 LogEventInfo.StackTrace moved into CallSiteInformation (@snakefoot)
    • #2399 Avoid struct copy on readonly field access (@snakefoot)
    • ๐Ÿ‘• #2389 Fixed Sonar Lint code analysis warnings (@snakefoot)
    • โšก๏ธ #2396 Update xunit and Microsoft.NET.Test.Sdk (@304NotModified)
    • 0๏ธโƒฃ #2387 JsonConverter - Do not include static properties by default (@snakefoot)
    • ๐Ÿšš #2392 Removed unneeded default references like System.Drawing for NetFramework (@snakefoot)
    • #2390 NLogViewerTarget - Enable override of the Logger-name (@snakefoot)
    • #2385 FileTarget - ArchiveMutex only created when needed (@snakefoot)
    • #2378 Target - Precalculate Layout should ignore sub-layouts for complex layouts (@snakefoot)
    • ๐Ÿšš #2388 PropertiesDictionary - Removed obsolete (private) method (@snakefoot)
    • #2384 InternalLogger should work when NetCore loads NetFramework DLL (@snakefoot)
    • #2377 NDLC - Perform low resolution scope timing (@snakefoot)
    • ๐Ÿ›  #2372 Log4JXmlEventLayoutRenderer - Minor platform fixes for IncludeNdlc (@snakefoot)
    • #2371 FileTarget - Enable archive mutex for Unix File Appender (if available) (@snakefoot)
    • ๐Ÿ”ง #2375 WebServiceTarget - Allow configuration of proxy address (@snakefoot)
    • ๐Ÿ“ฆ #2362 NLog - NETSTANDARD1_5 (Cleanup package references) (@snakefoot)
    • #2361 Use expression-bodied members (@c0shea)
  • v4.5-beta07 Changes

    October 15, 2017
    • #2359 WrapperLayoutRendererBase - Transform with access to LogEventInfo (@snakefoot)
    • ๐Ÿ‘ #2357 ExceptionLayoutRenderer - Support Serialize Format (@snakefoot)
    • #2358 WrapperLayoutRendererBuilderBase - Transform with access to LogEventInfo (@snakefoot)
    • ๐Ÿ”จ #2314 Refactor InternalLogger class (@304NotModified, @ie-zero)
    • ๐Ÿ“œ #2356 NLog - MessageTemplates - Renamed config to parseMessageTemplates (@snakefoot)
    • ๐Ÿ“ฆ #2353 remove old package.config (@304NotModified)
    • โช #2354 NLog - NETSTANDARD1_5 (revert breaking change) (@snakefoot)
    • ๐Ÿšš #2342 Remove redundant qualifiers (#2342) (@c0shea)
    • #2349 NLog - NETSTANDARD1_5 (Fix uppercase with culture) (@snakefoot)
    • #2341 NLog - NETSTANDARD1_5 (@snakefoot)
  • v4.5-beta06 Changes

    October 12, 2017
    • ๐Ÿ“œ #2346 Add messageTemplateParser to XSD (@304NotModified)
    • #2348 NLog MessageTemplateParameter with CaptureType (@snakefoot)