Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Bump NLog from 4.5.0 to 6.0.6 - #3

#3
Merged
MjrTom merged 1 commit into
masterMjrTom/CastleCore:masterfrom
dependabot/nuget/src/Castle.Services.Logging.NLogIntegration/NLog-6.0.6MjrTom/CastleCore:dependabot/nuget/src/Castle.Services.Logging.NLogIntegration/NLog-6.0.6Copy head branch name to clipboard
Nov 12, 2025
Merged

Bump NLog from 4.5.0 to 6.0.6#3
MjrTom merged 1 commit into
masterMjrTom/CastleCore:masterfrom
dependabot/nuget/src/Castle.Services.Logging.NLogIntegration/NLog-6.0.6MjrTom/CastleCore:dependabot/nuget/src/Castle.Services.Logging.NLogIntegration/NLog-6.0.6Copy head branch name to clipboard

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 12, 2025

Copy link
Copy Markdown

Updated NLog from 4.5.0 to 6.0.6.

Release notes

Sourced from NLog's releases.

6.0.6

Improvements

  • #​6027 FileTarget - Improve archive cleanup when using ArchiveSuffixFormat with datetime. (@​snakefoot)
  • #​6028 FileTarget - Fix archive cleanup when only single old file and using MaxArchiveDays. (@​snakefoot)
  • #​6039 FileTarget - Render ArchiveSuffixFormat using NLog DefaultCultureInfo. (@​snakefoot)
  • #​6030 ObjectReflectionCache - Improve handling of JObject serialization. (@​snakefoot)
  • #​6026 JsonLayout - Reduce code complexity for rendering JsonAttribute. (@​snakefoot)
  • #​6036 NullTarget - Improve thread concurrency when FormatMessage = false. (@​snakefoot)
  • #​6023 MemoryTarget - Apply MaxLogsCount update on next LogEvent. (@​snakefoot)
  • #​6040 XmlParser - Refactor to reduce code complexity. (@​snakefoot)
  • #​6041 ScopeContextAsyncState - Refactor to reduce code complexity. (@​snakefoot)

6.0.5

Improvements

  • #​5998 FileTarget - Rolling to next directory should not fail. (@​snakefoot)
  • #​6013 ValueFormatter - Skip quotes for CaptureType.Stringify unless legacy mode. (@​snakefoot)
  • #​6007 ColoredConsoleTarget - Use Span to reduce string-allocation for word-highlighting. (@​snakefoot)
  • #​6009 NullTarget - Avoid string-allocation upfront when FormatMessage = true. (@​snakefoot)
  • #​6012 XmlLoggingConfiguration - Reduce output for InternalLogger Info-Level. (@​snakefoot)
  • #​6006 XmlLoggingConfiguration - Protect against double dispose of AutoReloadConfigFileWatcher. (@​snakefoot)
  • #​6008 LoggerImpl - Merge WriteToTargetWithFilterChain into Write. (@​snakefoot)
  • #​6010 LoggingConfiguration - Redirect AddRuleForOneLevel and AddRuleForAllLevels to AddRule. (@​snakefoot)
  • #​6011 LoggingRule - Align EnableLoggingForLevels to skip when minLevel is LogLevel.Off. (@​snakefoot)
  • #​6015 CompoundLayout - Changed to foreach for better release optimizations. (@​snakefoot)
  • #​6016 CsvLayout - Changed to foreach for better release optimizations. (@​snakefoot)
  • #​6017 JsonArrayLayout - Changed to foreach for better release optimizations. (@​snakefoot)
  • #​6018 XmlLayout - Changed to foreach for better release optimizations. (@​snakefoot)

6.0.4

Improvements

  • #​5979 FileTarget - Improve file-wildcard for archive cleanup. (@​snakefoot)
  • #​5980 FileTarget - Extend InternalLogger output with archive cleanup reason. (@​snakefoot)
  • #​5981 FileTarget - Strict wildcard check only possible when single wildcard. (@​snakefoot)
  • #​5987 FileTarget - Improve archive cleanup with dynamic seq-no. (@​snakefoot)
  • #​5988 FileTarget - Avoid parsing archive sequence number when other digits. (@​snakefoot)
  • #​5996 FileTarget - Improve fallback logic when missing file system birthtime. (@​snakefoot)
  • #​5964 ColoredConsoleTarget - WholeWords should only highlight the word. (@​snakefoot)
  • #​5967 ColoredConsoleTarget - Fixed boxing issue in ConsoleRowHighlightingRule. (@​karpinsn)
  • #​5968 Simplify WithAutoFlush-method for fluent config API. (@​snakefoot)
  • #​5970 Fix boxing for registration of builtin condition methods. (@​snakefoot)
  • #​5977 ConditionExpression - Implicit operator with NotNullIfNotNull-attribute. (@​GREsau)
  • #​5982 SimpleLayout - Implicit operator with NotNullIfNotNull-attribute. (@​snakefoot)
  • #​5992 MessageLayoutRenderer - Handle Exception.ToString() can throw with AOT. (@​snakefoot)
  • #​5983 Append4DigitsZeroPadded - Use Span instead of multiple StringBuilder.Append(). (@​snakefoot)
  • #​5985 Extracted NLog.WindowsRegistry to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Trace to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.ConcurrentFile to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Database to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Mail to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.WebService to own git repository. (@​snakefoot)
  • #​5985 Extracted NLog.Targets.Network to own git repository. (@​snakefoot)

6.0.3

  • #​5952 FileTarget - Close old files when reaching OpenFileCacheSize. (@​snakefoot)
  • #​5948 FileTarget - Closing on OpenFileCacheTimeout apply least recently used. (@​snakefoot)
  • #​5947 FileTarget - Improved file-archive exception handling when KeepFileOpen=false. (@​snakefoot)
  • #​5954 ColoredConsoleTarget - Added Words-property for easy highlighting of many words without RegEx. (@​snakefoot)
  • #​5955 LogMessageTemplateFormatter - Also use IValueFormatter for positional templates. (@​snakefoot)
  • #​5953 NLog.Targets.Network - Updated links in README.md for nuget-package. (@​snakefoot)
  • #​5945 NLog.Targets.AtomicFile - Added README.md for nuget-package. (@​snakefoot)
  • #​5940 SplunkTarget - Support SplunkFields-property. (@​snakefoot)

6.0.2

  • #​5930 XmlParser - Handle XML comments after root-end-tag. (@​snakefoot)
  • #​5929 XmlLoggingConfiguration - Improve handling of invalid XML. (@​snakefoot)
  • #​5933 Handle invalid message template when skipping parameters array. (@​snakefoot)
  • #​5915 ReplaceNewLinesLayoutRendererWrapper - Replace more line ending characters. (@​oikku)
  • #​5911 NLog.Targets.GZipFile - Improve support for ArchiveAboveSize. (@​snakefoot)
  • #​5921 FileTarget - Activate legacy ArchiveFileName when ArchiveSuffixFormat contains legacy placeholder. (@​snakefoot)
  • #​5924 AsyncTargetWrapper - Updated FullBatchSizeWriteLimit default value from 5 to 10. (@​snakefoot)
  • #​5937 Mark Assembly loading with RequiresUnreferencedCodeAttribute for AOT. (@​snakefoot)
  • #​5938 Logger - Align WriteToTargets with WriteToTargetsWithSpan. (@​snakefoot)
  • #​5909 ConfigurationItemFactory - Added extension hints for webservice and activityid. (@​snakefoot)
  • #​5918 Log4JXmlTarget - Removed alias NLogViewer as conflicts with other nuget-packages. (@​snakefoot)
  • #​5926 SplunkTarget - NetworkTarget with SplunkLayout. (@​snakefoot)
  • #​5927 GelfLayout - Align with SplunkLayout. (@​snakefoot)
  • #​5913 NLog.Targets.Network - Updated nuget-package README.md. (@​snakefoot)
  • #​5912 NLog.Targets.Trace - Updated nuget-package README.md. (@​snakefoot)
  • #​5919 XML docs for Targets and Layouts with remarks about default value. (@​snakefoot)
  • #​5922 XML docs for LayoutRenderers with remarks about default value. (@​snakefoot)
  • #​5925 XML docs for Target Wrappers with remarks about default value. (@​snakefoot)
  • #​5935 Improve NLog XSD Schema with better handling of typed Layout. (@​snakefoot)
  • #​5923 Updated unit-tests from NET6 to NET8. (@​snakefoot)

6.0.1

Improvements

  • #​5898 Changed ConditionExpression to be nullable by default since no Condition means no filtering. (@​snakefoot)
  • #​5906 Include ConditionExpression in the static type registration. (@​snakefoot)
  • #​5895 Fixed the new XML parser to handle XML comments just before end-tag. (@​snakefoot)
  • #​5905 Fixed the new XML parser to allow InnerText with greater-than characters. (@​snakefoot)
  • #​5891 Updated NLog.Targets.AtomicFile to support net8.0-windows without dependency on Mono.Posix.NETStandard. (@​snakefoot)

6.0

Major changes:

  • Support Ahead-of-Time (AOT) builds without warnings
  • Support Nullable references
  • Support ReadOnlySpan to reduce memory allocations
  • LogFactory supports FlushAsync and IDisposableAsync
  • FileTarget removed support for ConcurrentWrites
  • FileTarget refactored file-archive-logic with ArchiveSuffixFormat

NLog v6 has reduced its footprint by extracting features into separate nuget-packages:

List of all NLog 6.0 Pull Requests

See also List of major changes in NLog v6 for more details.

Thanks to all contributers: @​ana1250, @​Pavan8374, @​smnsht, @​RomanSoloweow, @​wadebaird, @​hangy, @​lavige777, @​jokoyoski, @​saltukkos, @​nih0n, @​michaelplavnik, @​Aaronmsv, @​ShadowDancer, @​Orace, @​tvogel-nid, @​martinzding, @​kurnakovv, @​dance, @​JohnVerheij

6.0.0-rc4

Improvements

  • Mark struct as readonly to allow compiler optimization
  • RegisterObjectTransformation to preserve public properties
  • Log4JXmlEventLayout - Enforce MaxRecursionLimit = 0
  • DatabaseTarget with support for AOT (@​JohnVerheij)
  • DatabaseTarget only assign ConnectionString when specified (@​JohnVerheij)

6.0.0-rc3

Improvements

  • Log4JXmlEventLayout - Fixed IncludeEmptyValue for Parameters

6.0.0-rc2

Improvements

  • Fixed NLog XmlParser to support XML comments within XML processing instructions.
  • NLog.Targets.Network now also supports NET35.
  • Updated structs to be readonly to allow compiler optimizations.
  • Updated interface ILoggingConfigurationElement to support nullable Values.
  • Updated all projects to include <IsAotCompatible>
  • Optimized ConsoleTarget to not use Console.WriteLine, and introduced option ForceWriteLine
  • Added new LogEventInfo constructor that supports ReadOnlySpan<MessageTemplateParameter>
  • Updated NLog.Schema nuget-package to include targets-file to copy NLog.xsd to project-folder.
  • Improved configuration-file loading to advise about NLog nuget-packages for missing types.

6.0.0-rc1

Improvements

  • Updated NLog API with <Nullable>enable</Nullable> and introduced Layout.Empty
  • Marked [RequiredParameter] as obsolete, and replaced with explicit option validation during initialization.
  • Marked LogEventInfo.SequenceID and ${sequenceid} as obsolete, and instead use ${counter:sequence=global}.
  • Added support for params ReadOnlySpan when using C# 13
  • Prioritize generic Logger-methods by marking legacy methods with [OverloadResolutionPriority(-1)] when using C# 13
  • Skip LogEventInfo.Parameters-array-allocation when unable to defer message-template formatting.
  • Renamed ChainsawTarget to Log4JXmlTarget to match Log4JXmlEventLayout
  • Updated NLog.Schema to include intellisense for multiple NLog-assemblies.

Unless something bad is discovered, then this will be the last preview build, before the final release of NLog v6.0

Updated NLog v6.0 release notes: https://nlog-project.org/2025/04/29/nlog-6-0-major-changes.html

6.0.0-preview1

Major Changes

  • Support AOT builds without build warnings.
  • New FileTarget without ConcurrentWrites support, but still support KeepFileOpen (true/false).
  • Moved old FileTarget into the new nuget-package NLog.Targets.ConcurrentFile.
  • Created new nuget-package NLog.Targets.AtomicFile that supports ConcurrentWrites for NET8 on both Windows / Linux.
  • Created new nuget-package NLog.Targets.GZipFile that uses GZipStream for writing directly to compressed files.
  • Moved MailTarget into the new nuget-package NLog.Targets.Mail.
  • Moved NetworkTarget into the new nuget-package NLog.Targets.Network.
  • New GelfTarget introduced for the new nuget-package NLog.Targets.Network.
  • New SyslogTarget introduced for the new nuget-package NLog.Targets.Network.
  • Moved TraceTarget and NLogTraceListener into the new nuget-package NLog.Targets.Trace.
  • Moved WebServiceTarget into the new nuget-package NLog.Targets.WebService
  • Removed dependency on System.Text.RegularExpressions and introduced new nuget-package NLog.RegEx.
  • Removed dependency on System.Xml.XmlReader by implementing own internal basic XML-Parser.

NLog v6.0 release notes: https://nlog-project.org/2025/04/29/nlog-6-0-major-changes.html

List of all NLog 6.0 Pull Requests

Thanks to all contributers: @​ana1250, @​Pavan8374, @​smnsht, @​RomanSoloweow, @​wadebaird, @​hangy, @​lavige777, @​jokoyoski, @​saltukkos, @​nih0n, @​michaelplavnik, @​Aaronmsv, @​ShadowDancer, @​Orace, @​tvogel-nid, @​martinzding, @​kurnakovv

5.5.1

  • #​5858 ConsoleTarget - Added ForceWriteLine to match NLog v6 Schema (@​snakefoot)
  • #​5866 Layout.FromLiteral to match NLog v6 (@​snakefoot)
  • #​5888 ChainsawTarget with type-alias Log4JXml to match NLog v6 (@​snakefoot)
  • #​5883 AsyncTargetWrapper - LogEventDropped and EventQueueGrow events fixes (@​dance)
  • #​5890 StringBuilderExt - Change Append2DigitsZeroPadded to array-lookup (@​snakefoot)
  • #​5936 XmlLayout - Support MaxRecursionLimit == 0 (@​snakefoot)
  • #​5936 RegisterObjectTransformation so build trimming will keep public properties (@​snakefoot)

5.5

Improvements

  • #​5710 Restored LogFactory.Setup().SetupFromEnvironmentVariables() as not obsolete (#​5710) @​snakefoot
  • #​5717 Avoid using MakeGenericType for Dictionary enumeration when AOT (#​5717) @​snakefoot
  • #​5730 Stop using obsolete Assembly.CodeBase for NetStandard (#​5730) @​snakefoot
  • #​5742 ExceptionLayoutRenderer - Handle Exception properties like StackTrace can throw with AOT (#​5742) @​snakefoot
  • #​5743 ExceptionLayoutRenderer - Handle Data-collection-item ToString can throw with AOT (#​5743) @​snakefoot
  • #​5763 ExceptionLayoutRenderer - Handle Exception-properties can throw with AOT (#​5763) @​snakefoot
  • #​5756 ServiceRepository - Improve exception-handling when resolving service-types while disposing (#​5756) @​snakefoot
  • #​5759 LayoutRenderer - Optimize performance by skipping cache result from render Inner Layout (#​5759) @​snakefoot
  • #​5795 ConditionLayoutExpression - Optimize performance by skipping cache result from render Inner Layout (#​5795) @​snakefoot
  • #​5731 Mark IFactory RegisterType as obsolete, since it will be removed with NLog v6 (#​5731) @​snakefoot
  • #​5766 Mark JsonLayout EscapeForwardSlash as obsolete, since disabled with NLog v6 (#​5766) @​snakefoot
  • #​5823 Mark ExceptionLayoutRenderer Formats-List as obsolete, since immutable with NLog v6 (#​5823) @​snakefoot
  • #​5769 Updated API-code examples to not depend on obsolete SimpleConfigurator (#​5769) @​snakefoot
  • #​5776 ObjectReflectionCache - Handle PropertyValue can throw with AOT (#​5776) @​snakefoot
  • #​5780 NetworkTarget - Introduced option NoDelay to disable delayed ACK (#​5780) @​snakefoot
  • #​5788 Fix InternalLogger noise about reflection for FuncLayoutRenderer (#​5788) @​snakefoot
  • #​5792 TargetWithContext - Reduce allocation for RenderLogEvent when SimpleLayout (#​5792) @​snakefoot
  • #​5810 Refactoring to improve null value handling (#​5810) @​snakefoot
  • #​5812 Refactoring to improve null value handling (#​5812) @​snakefoot
  • #​5817 LoggingConfigurationParser - Prioritize LoggingRules from current config (#​5817) @​snakefoot
  • #​5825 WhenEmptyLayoutRendererWrapper - Optimize IStringValueRenderer Logic (#​5825) @​snakefoot

5.4

Improvements

  • #​5698 Fix AppDomain BaseDirectory on NET9 when it returns Long UNC (#​5698) (@​snakefoot)
  • #​5700 AsyncTaskTarget - Reduce default throttle after failure to 50ms instead of 500ms (#​5700) (@​snakefoot)
  • #​5702 ColoredConsoleTarget - Recognize NO_COLOR environment variable (#​5702) (@​snakefoot)
  • #​5696 More InternalLogger output when target disabled because failed to initialize (#​5696) (@​snakefoot)
  • #​5681 SimpleLayout - FromString avoid first chance exception when unknown layoutrenderer-type (#​5681) (@​snakefoot)
  • #​5651 ObjectGraphScanner - Handle property-getter that throws when AOT (#​5651) (@​snakefoot)
  • #​5656 LoggingConfigurationParser - Handle property-getter that throws when AOT (#​5656) (@​snakefoot)
  • #​5604 Remove Serializable-attribute and SerializationInfo since obsolete in NET8 (#​5604) (@​snakefoot)
  • #​5695 Marked JsonLayout EscapeForwardSlash as obsolete (#​5695) (@​snakefoot)
  • #​5694 Marked NLogViewerTarget and IncludeNLogData as obsolete (#​5694) (@​snakefoot)
  • #​5693 Marked XmlLoggingConfiguration AppConfig as obsolete (#​5693) (@​snakefoot)
  • #​5692 Marked XmlLoggingConfiguration InitializeSucceeded as obsolete (#​5692) (@​snakefoot)
  • #​5691 Marked LogEventInfo SetStackTrace with UserStackFrameNumber as obsolete (#​5691) (@​snakefoot)
  • #​5689 Marked SetupFromEnvironmentVariables and LogToTrace as obsolete (#​5689) (@​snakefoot)
  • #​5687 FileTarget - Introduced WriteToFile without concurrentWrites (#​5687) (@​snakefoot)
  • #​5682 TraceTarget - Fixed Header output (#​5682) (@​snakefoot)
  • #​5680 CounterLayoutRenderer - Lock on readonly field to fix Sonar Code Smell (#​5680) (@​snakefoot)
  • #​5630 LogAssemblyVersion should check InternalLogger IsInfoEnabled (#​5630) (@​snakefoot)
  • #​5684 MethodFactory - Only register methods from class-types (#​5684) (@​snakefoot)
  • #​5686 StringBuilderExt - Updated EqualTo for StringBuilder to foreach-loop (#​5686) (@​snakefoot)
  • #​5611 SimpleLayout - Refactor RenderAllRenderers to use foreach (#​5611) (@​snakefoot)
  • #​5610 JsonLayout - Optimize AppendStringEscape for success path (#​5610) (@​snakefoot)
  • #​5601 JsonLayout - Optimize ExcludeEmptyProperties to skip string cast (#​5601) (@​snakefoot)

5.3.4

Improvements

  • #​5572 Layout.FromMethod that supports typed Layout (#​5572) (@​smnsht)
  • #​5580 Layout.FromMethod that supports typed Layout (without boxing) (#​5580) (@​snakefoot)
  • #​5570 ScopeContextPropertyEnumerator - Optimize HasUniqueCollectionKeys (#​5570) (@​snakefoot)
  • #​5571 XmlLayout - Fixed bug in handling unsafe xml property names (#​5571) (@​snakefoot)
  • #​5573 FuncThreadAgnosticLayoutRenderer - Implement IRawValue (#​5573) (@​snakefoot)
  • #​5577 Introduced OnConfigurationAssigned to signal activation of LoggingConfiguration (#​5577) (@​snakefoot)
  • #​5578 Update copyright to 2024, and removed trailing white spaces in source code (#​5578) (@​snakefoot)
  • #​5585 Fixed various issues reported by EnableNETAnalyzers (#​5585) (@​snakefoot)
  • #​5587 NetworkTarget - Added SendTimeoutSeconds to assign TCP Socket SendTimeout (#​5587) (@​snakefoot)
  • #​5588 DateLayoutRenderer - Optimize for Round Trip ISO 8601 Date Format = o (#​5588) (@​snakefoot)
  • #​5589 LayoutRenderer - Changed Render-method to use StringBuilderPool (#​5589) (@​snakefoot)
  • #​5599 JsonLayout - Refactor code to simplify rendering of scope properties (#​5599) (@​snakefoot)
  • #​5600 JsonLayout - Precalculate Json-Document delimiters upfront (#​5600) (@​snakefoot)

5.3.3

Improvements

  • #​5548 FileTarget - Reset reusable MemoryStream when above max capacity (#​5548) (@​RomanSoloweow)
  • #​5568 ThreadIdLayoutRenderer - Added IStringValueRenderer optimization (#​5568) (@​snakefoot)
  • #​5566 PropertiesDictionary - Added PropertyDictionaryEnumerator to enumerate without allocation (#​5566) (@​snakefoot)
  • #​5567 PropertiesDictionary - Simplify PropertyDictionaryEnumerator MoveNext (#​5567) (@​snakefoot)
  • #​5562 TargetWithContext - Skip caching when render value for ContextProperties (#​5562) (@​snakefoot)
  • #​5557 SimpleLayout - Refactor to reduce code complexity (#​5557) (@​snakefoot)
  • #​5556 DatabaseTarget - CloseConnection even when ThrowExceptions = true (#​5556) (@​snakefoot)
  • #​5553 LoggerNameMatcher private classes marked as sealed (#​5553) (@​snakefoot)
  • #​5554 LoggingConfigurationParser - Refactor to reduce code complexity (#​5554) (@​snakefoot)
  • #​5551 LoggingConfigurationParser - Refactor to reduce code complexity (#​5551) (@​snakefoot)
  • #​5550 FileArchiveModeRolling - Refactor to reduce code complexity (#​5550) (@​snakefoot)
  • #​5542 LimitingTargetWrapper - Fix wiki-link in XML docs (#​5542) (@​snakefoot)
  • #​5541 FileTarget - Improve internal logging when invalid FileName (#​5541) (@​snakefoot)
  • #​5540 WhenRepeatedFilter - Added wiki-link in XML docs (#​5540) (@​snakefoot)
  • #​5536 RegEx IsMatch is faster with RegexOptions.ExplicitCapture to skip capture (#​5536) (@​snakefoot)
  • #​5535 PropertyTypeConverter - Use Type IsAssignableFrom instead of Equals (#​5535) (@​snakefoot)
  • #​5527 StackTraceUsageUtils - Refactor to reduce code complexity (#​5527) (@​snakefoot)
  • #​5526 AsyncRequestQueue - Premature optimization of Enqueue (#​5526) (@​snakefoot)
  • #​5525 JsonLayout - Refactor to reduce code complexity (#​5525) (@​snakefoot)
  • #​5524 XmlLayout - Refactor to reduce code complexity (#​5524) (@​snakefoot)
  • #​5523 AsyncTaskTarget - Added more logging to diagnose batching logic (#​5523) (@​snakefoot)
  • #​5522 Layout will always initializes nested layouts (#​5522) (@​snakefoot)
  • #​5519 NLogTraceListener - Reduce boxing of EventType + EventId properties (#​5519) (@​snakefoot)

5.3.2

Bug Fix

  • #​5515 Fix NullReferenceException when using LoggingRules with filters and no targets (#​5515) (@​snakefoot)

5.3.1

Improvements

  • #​5313 CallSite can hide single class type using AddCallSiteHiddenClassType (#​5313) (@​wadebaird)
  • #​5489 Logging Rule with FinalMinLevel also supports dynamic filters (#​5489) (@​snakefoot)
  • #​5463 LogManager GetCurrentClassLogger fallback to assembly-name when no namespace (#​5463) (@​snakefoot)
  • #​5480 Logger LayoutRenderer able to output the Logger PrefixName (#​5480) (@​snakefoot)
  • #​5466 NLogViewer Target - Allow override of the FormattedMessage (#​5466) (@​snakefoot)
  • #​5487 CallSite fallback to Exception TargetSite when available (#​5487) (@​snakefoot)
  • #​5242 NLogTraceListener - Align Filter-behavior for all Write-methods (#​5242) (@​snakefoot)
  • #​5490 LogManager AddHiddenAssembly marked obsolete, instead use AddCallSiteHiddenAssembly (#​5490) (@​snakefoot)
  • #​5443 InternalLogger - Marked LogToTrace as obsolete to reduce dependencies (#​5443) (@​snakefoot)
  • #​5297 Replaced MutableUnsafeAttribute with ThreadAgnosticImmutableAttribute (#​5297) (@​snakefoot)
  • #​5431 Marked ILoggerBase and ISuppress as obsolete and instead use ILogger (#​5431) (@​snakefoot)
  • #​5491 LoggingRule - Marked ChildRules as obsolete (#​5491) (@​snakefoot)
  • #​5416 FileTarget - Marked NetworkWrites as obsolete, and replaced by KeepFileOpen=false (#​5416) (@​snakefoot)
  • #​5355 Marked EscapeDataNLogLegacy as obsolete (#​5355) (@​snakefoot)
  • #​5380 WrapperTarget is the wrapper and not the wrapped (#​5380) (@​snakefoot)
  • #​5485 LogFactory - Disconnect from Target write and Target flush (#​5485) (@​snakefoot)
  • #​5509 NLog Schema nuget-package with updated license info (#​5509) (@​snakefoot)
  • #​5493 Added sealed to internal classes (#​5493) (@​snakefoot)
  • #​5497 Added more NLog Wiki Links to XML docs (#​5497) (@​snakefoot)
  • #​5475 CsvLayout - Fixed links to NLog Wiki in XML docs (#​5475) (@​hangy)

5.2.8

Improvements

  • #​5450 ConfigurationItemFactory - Skip type attribute lookup for official types (#​5450) (@​snakefoot)
  • #​5441 LoggingRule - ToString should recognize Final and FinalMinLevel (#​5441) (@​snakefoot)
  • #​5438 FileTarget - Refactor Windows FileSystem Tunneling repair logic (#​5438) (@​snakefoot)
  • #​5432 Hide obsolete methods and classes from intellisense (#​5432) (@​snakefoot)
  • #​5429 CachedTimeSource - Added Thread.MemoryBarrier to avoid code-reordering (#​5429) (@​snakefoot)

5.2.7

Improvements

  • #​5427 FileTarget - Fix Windows FileSystem Tunneling when KeepFileOpen=false (#​5427) (@​snakefoot)
  • #​5422 AppEnvironmentWrapper - Added Entry-Assembly as fallback for ProcessName (#​5422) (@​snakefoot)
  • #​5419 Improved XML docs for MDC, MDLC, NDC, NDLC about being replaced by ScopeContext (#​5419) (@​snakefoot)

5.2.6

Improvements

  • #​5407 FileTarget - Added option WriteHeaderWhenInitialFileNotEmpty (#​5407) (@​RomanSoloweow)
  • #​5381 FileTarget - Removed explicit File.Create to not trigger file-scanners (#​5381) (@​snakefoot)
  • #​5382 FileTarget - SetCreationTimeUtc only when IsArchivingEnabled (#​5382) (@​snakefoot)
  • #​5384 FileTarget - SetCreationTimeUtc always when running on Windows (#​5384) (@​snakefoot)
  • #​5389 ColoredConsoleTarget - Added Setup-extension-method WriteToColoredConsole (#​5389) (@​snakefoot)
  • #​5409 MemoryTarget - Make Logs-property thread-safe to enumerate (#​5409) (@​snakefoot)
  • #​5413 MultiFileWatcher - Improve InternalLogger output to match on start and stop (#​5413) (@​snakefoot)
  • #​5398 Marked obsolete members with EditorBrowsableState.Never (#​5398) (@​snakefoot)
  • #​5412 Change TargetFrameworks to net461 when old VisualStudioVersion (#​5412) (@​snakefoot)

5.2.5

Improvements

  • #​5344 ConcurrentRequestQueue - Reduced SpinCount to 15, before monitor wait (#​5344) (@​snakefoot)
  • #​5347 ConfigurationItemFactory - Improve exception message when unknown type-alias (#​5347) (@​snakefoot)
  • #​5348 ConfigurationItemFactory - Faster scanning of relevant configuration item types (#​5348) (@​snakefoot)
  • #​5349 FileTarget - Verify FilePathLayout not containing unexpected characters (#​5349) (@​snakefoot)
  • #​5351 LogManager.ReconfigExistingLoggers with reduced memory allocation (#​5351) (@​snakefoot)
  • #​5353 CsvLayout - Improve XML docs for CustomColumnDelimiter (#​5353) (@​snakefoot)
  • #​5354 LogEventInfo - Can be immutable when having FormattedMessage and no parameters (#​5354) (@​snakefoot)
  • #​5356 Renamed internal NLogXmlElement to XmlLoggingConfigurationElement and fixed XML docs (#​5356) (@​snakefoot)
  • #​5359 StringHelpers - Skip SubString for case-insensitive Replace-method (#​5359) (@​snakefoot)
  • #​5360 ReplaceLayoutRendererWrapper - IgnoreCase faster without RegEx (#​5360) (@​snakefoot)
  • #​5363 Improved InternalLogger output when parsing NLog config with target wrappers (#​5363) (@​snakefoot)
  • #​5370 NetworkTarget - Skip connection when above max message size (#​5370) (@​snakefoot)
  • #​5371 Fixed various issues reported by EnableNETAnalyzers (#​5371) (@​snakefoot)
  • #​5372 Updated various nuget-packages to include README.md (#​5372) (@​snakefoot)

5.2.4

Improvements

  • #​5316 ObjectPath should only render output when finding property-value (#​5316) (@​snakefoot)
  • #​5318 Typed Layout parses empty string as fixed null value when nullable (#​5318) (@​snakefoot)
  • #​5319 Introduced new LogEventInfo-constructor to skip Parameters-array allocation (#​5319) (@​snakefoot)
  • #​5321 ConfigurationItemFactory - Improve obsolete message for JsonConverter + ValueFormatter (#​5321) (@​snakefoot)
  • #​5326 InternalLogger - Force output even when invalid format string (#​5326) (@​snakefoot)
  • #​5327 NetworkTarget - Avoid unhandled exception when using ThrowExceptions=true (#​5327) (@​snakefoot)
  • #​5336 Skip checking ExcludeProperties when empty, to avoid string GetHashCode (#​5336) (@​snakefoot)
  • #​5337 JsonLayout optimizing thread context capture for inner layouts (#​5337) (@​snakefoot)
  • #​5310 FileTarget - FilePathLayout with fixed-filename can translate to absolute path (#​5310) (@​snakefoot)

5.2.3

Improvements

  • #​5308 AutoFlushTargetWrapper - Explicit flush should also await when FlushOnConditionOnly (#​5308) (@​snakefoot)
  • #​5301 Target precalculate should only perform single IsInitialized check (#​5301) (@​snakefoot)
  • #​5300 Target precalculate should only consider relevant layouts (#​5300) (@​snakefoot)
  • #​5296 Target precalculate should handle duplicate layouts (#​5296) (@​snakefoot)
  • #​5299 MessageLayoutRenderer - Skip Flatten when simple AggregateException (#​5299) (@​snakefoot)
  • #​5298 ConfigurationItemFactory - Improve obsolete message for obsoleted factory-properties (#​5298) (@​snakefoot)
  • #​5291 Report NLog version on initial configuration assignment (#​5291) (@​snakefoot)
  • #​5290 PropertyHelper - SetPropertyFromString allow empty string for nullable-value (#​5290) (@​snakefoot)
  • #​5289 Check RequiredParameter should also validate nullable types (#​5289) (@​snakefoot)
  • #​5287 FileTarget - FilePathLayout with fixed-filename can translate to absolute path (#​5287) (@​snakefoot)
  • #​5279 FileTarget - Cleanup FileSystemWatcher correctly when ArchiveFilePatternToWatch changes (#​5279) (@​lavige777)
  • #​5281 Refactor ConditionBasedFilter when-filter to use ternary operator (#​5281) (@​jokoyoski)

5.2.2

Improvements

  • #​5276 ConfigurationItemFactory - Fix NullReferenceException when skipping already loaded assembly (#​5276) (@​snakefoot)

5.2.1

Improvements

  • #​5191 WrapperTarget - Derive Name from wrappedTarget (#​5248) (@​snakefoot)
  • #​5249 Updated obsolete warning for ConfigurationReloaded-event (#​5249) (@​snakefoot)
  • #​5251 ConfigurationItemFactory - Notify when using reflection to resolve type (#​5251) (@​snakefoot)
  • #​5253 LoggingConfigurationParser - Create list items without using reflection (#​5253) (@​snakefoot)
  • #​5254 ConfigurationItemFactory - Include ConditionExpression in registration (#​5254) (@​snakefoot)
  • #​5255 LogFactory - Obsoleted GetLogger should not throw exceptions when invalid logger-type (#​5255) (@​snakefoot)
  • #​5257 ConfigurationItemFactory - Skip assembly-loading should also check prefix-option (#​5257) (@​snakefoot)
  • #​5263 ConfigurationItemFactory - Logging assembly-prefix when loading assembly (#​5263) (@​snakefoot)
  • #​5266 ILogger - Remove irrelevant StructuredMessageTemplateAttribute (#​5266) (@​saltukkos)
  • #​5267 ILogger - Updated obsolete warning for ErrorException-method and friends (#​5267) (@​snakefoot)
  • #​5269 LoggingConfigurationParser - TryGetEnumValue should throw when invalid string-value (#​5269) (@​snakefoot)
  • #​5268 ConfigurationItemFactory - Include ConditionMethods in registration (#​5268) (@​snakefoot)
  • #​5273 TargetWithContext - Fix InternalLogger output about Object reflection needed (#​5273) (@​snakefoot)

5.2.0

Improvements

  • #​5191 ConfigurationItemFactory annotated for trimming and obsoleted CreateInstance-delegate (#​5191) (@​snakefoot)
  • #​5216 Refactor - Apply ThrowIfNull and ThrowIfNullOrEmpty (#​5216) (@​nih0n)

See also: NLog v5.2 without trim warnings, and obsoleted methods.

5.1.5

Improvements

  • #​5229 TargetWithContext - Fixed ScopeContext capture when multiple wrappers (#​5229) (@​snakefoot)
  • #​5227 DefaultJsonSerializer - Cache length when validating json encoding (#​5227) (@​snakefoot)
  • #​5220 FileTarget - Suppress exceptions from retrieving FileInfo.CreationTimeUtc (#​5220) (@​snakefoot)
  • #​5219 LoggingConfigurationParser - Handle adding Target without name (#​5219) (@​snakefoot)
  • #​5215 Log4jXmlEvent - Fixed removal of invalid XML chars (#​5215) (@​snakefoot)
  • #​5210 LoggingConfiguration - Expand NLog config variables for Logging Rules WriteTo (#​5210) (@​snakefoot)

5.1.4

Improvements

  • #​5207 FileTarget - Recover from file-deleted when same archive-folder (#​5207) (@​snakefoot)
  • #​5201 NLog.xsd schema with support for variables section (#​5201) (@​michaelplavnik)
  • #​5200 JsonLayout - Added IndentJson for pretty format (#​5200) (@​nih0n)
  • #​5197 Log4jXmlEvent - Fix dummy-Namespace when using IncludeScopeProperties (#​5197) (@​snakefoot)
  • #​5195 ConfigurationItemFactory - Handle concurrent registration with single lock (#​5195) (@​snakefoot)
  • #​5193 AsyncTaskTarget - Include task exception on completed event (#​5193) (@​snakefoot)
  • #​5186 ScopeContext - Uniform initial small array sizes (#​5186) (@​snakefoot)

5.1.3

Improvements

  • #​5174 LoggingRule - FinalMinLevel with Layout support (#​5174) (@​Aaronmsv)
  • #​5177 MailTarget - Added support for email message headers (#​5177) (@​snakefoot)
  • #​5175 ScopeContext - Replace recursive lookup with enumeration (#​5175) (@​snakefoot)
  • #​5168 MethodCallTarget - Compile Method Invoke as Expression Trees (#​5168) (@​snakefoot)
  • #​5165 PaddingLayoutRendererWrapper - Avoid using Insert for reusable StringBuilder (#​5165) (@​snakefoot)
  • #​5159 Json serializer with ISpanFormattable support for decimal + double (#​5168) (@​snakefoot)

5.1.2

Improvements

  • #​5157 FileTarget - Archive Dynamic FileName ordering ignore case (#​5157) (@​snakefoot)
  • #​5150 EventLogTarget - EventId with LogEvent Property Lookup by default (#​5150) (@​snakefoot)
  • #​5148 ReplaceLayoutRendererWrapper - SearchFor is required, and ReplaceWith optional (#​5148) (@​snakefoot)
  • #​5146 SpecialFolderLayoutRenderer - Fallback for Windows Nano (#​5146) (@​snakefoot)
  • #​5144 NetworkTarget emit LogEventDropped event on NetworkError (#​5144) (@​ShadowDancer)
  • #​5141 AsyncTaskTarget - Dynamic wait time after TaskTimeoutSeconds has expired (#​5141) (@​snakefoot)
  • #​5140 ConfigurationItemFactory - Handle concurrent registration with single lock (#​5140) (@​snakefoot)

5.1.1

Improvements

  • #​5134 XmlLayout - Added Layout-option to XmlElement to match XmlAttribute (#​5134) (@​snakefoot)
  • #​5126 JsonLayout - Avoid NullReferenceException when JsonAttribute has no Layout (#​5126) (@​snakefoot)
  • #​5122 ConfigurationItemFactory - Handle concurrent registration of extensions (#​5122) (@​snakefoot)
  • #​5121 LogEventInfo with custom MessageFormatter now generates FormattedMessage upfront (#​5121) (@​snakefoot)
  • #​5118 AsyncTargetWrapper - Reduce overhead when scheduling instant background writer thread (#​5118) (@​snakefoot)
  • #​5115 ConfigurationItemFactory - Faster scan of NLog types with filter on IsPublic / IsClass (#​5115) (@​snakefoot)

5.1.0

Improvements

  • #​5102 MessageTemplates ValueFormatter with support for ISpanFormattable (#​5102) (@​snakefoot)
  • #​5101 Add LogEventDropped handler to the NetworkTarget (#​5101) (@​ShadowDancer)
  • #​5108 Improving InternalLogger output when adding NLog targets to configuration (#​5108) (@​snakefoot)
  • #​5110 ObjectPathRendererWrapper - Added public method TryGetPropertyValue (#​5110) (@​snakefoot)

5.0.5

Improvements

  • #​5092 InternalLogger - LogFile expand filepath variables (#​5092) (@​RyanGaudion)
  • #​5090 ReplaceNewLines - Support Replacement with newlines (#​5090) (@​Orace)
  • #​5086 ScopeIndent LayoutRenderer (#​5086) (@​snakefoot)
  • #​5085 Introduced TriLetter as LevelFormat (Trc, Dbg, Inf, Wrn, Err, Ftl) (#​5085) (@​snakefoot)
  • #​5078 LogFactory.Setup - Added support for RegisterLayout and validate NLog types (#​5078) (@​snakefoot)
  • #​5076 AutoFlushTargetWrapper - Fix race-condition that makes unit-tests unstable (#​5076) (@​snakefoot)
  • #​5073 Include error-message from inner-exception when layout contains unknown layoutrenderer (#​5073) (@​snakefoot)
  • #​5065 ObjectReflectionCache - Skip serializing System.Net.IPAddress (#​5065) (@​snakefoot)
  • #​5060 ObjectReflectionCache - Skip reflection of delegate-objects (#​5060) (@​snakefoot)
  • #​5057 OnException + OnHasProperties - Added Else-option (#​5057) (@​snakefoot)
  • #​5056 LogEventBuilder - Added Log(Type wrapperType) for custom Logger wrapper (#​5056) (@​snakefoot)

5.0.4

Fixes

  • #​5051 Fixed embedded resource with ILLink.Descriptors.xml to avoid IL2007 (#​5051) (@​snakefoot)

5.0.3

Improvements

  • #​5034 Added embedded resource with ILLink.Descriptors.xml to skip AOT (#​5034) (@​snakefoot)
  • #​5035 Layout Typed that can handle LogEventInfo is null (#​5035) (@​snakefoot)
  • #​5036 JsonLayout - Fix output for Attributes with IncludeEmptyValue=false and Encode=false (#​5036) (@​snakefoot)

5.0.2

Improvements

  • #​5019 Layout Typed validates fixed values upfront at config initialization, instead of when logging (#​5019) (@​snakefoot)
  • #​5026 Removed obsolete dependency Microsoft.Extensions.PlatformAbstractions (#​5026) (@​snakefoot)
  • #​5016 WebServiceTarget - Verifies Url as RequiredParameter (#​5016) (@​snakefoot)
  • #​5014 WebServiceTarget - Improve InternalLogging when Url is invalid (#​5014) (@​snakefoot)
  • #​5010 GlobalDiagnosticsContext - Implicit caching of value lookup (#​5010) (@​snakefoot)
  • #​5004 EventLogTarget - Bump default MaxMessageLength to 30000 to match limit in Win2008 (#​5004) (@​snakefoot)
  • #​4995 Support UniversalTime = false when NLog time-source is UTC (#​4995) (@​snakefoot)
  • #​4987 ConfigurationItemFactory - Include original type-alias when CreateInstance fails (#​4987) (@​snakefoot)
  • #​4981 AssemblyVersionLayoutRenderer - Support override of Default value (#​4981) (@​snakefoot)
  • #​4976 LoggingConfiguration - AddRule with overload for LoggingRule object (#​4976) (@​tvogel-nid)

5.0.1

Improvements

  • #​4938 LoggingConfigurationParser should alert when LoggingRule filters are bad (#​4938) (@​snakefoot)
  • #​4940 CompoundLayout with layout from config variable (#​4940) (@​snakefoot)
  • #​4944 Mark Target LayoutWithLock as obsolete, since only temporary workaround (#​4944) (@​snakefoot)
  • #​4950 FileTarget - First acquire file-handle to compress before creating zip-file (#​4950) (@​snakefoot)
  • #​4953 FileTarget - Zip compression should not truncate when zip-file already exists (#​4953) (@​snakefoot)
  • #​4965 Max StackTraceUsage should be computed using bitwise OR (#​4965) (@​martinzding)
  • #​4963 Improved source-code documentation by fixing spelling errors (#​4963) (@​kurnakovv)

5.0.0

See Release post

Details of changes: See here

Major Features

  • NLog is now faster and lighter
  • NLog Layout for everything
  • NLog ScopeContext to replace MDC + MDLC + NDC + NDLC
  • NLog Layout stored as NLog Configuration Variables
  • Fluent API for NLog LoggingConfiguration
  • NLog Callsite from caller member attributes
  • LogFactory with Dependency Injection
  • Multiple type-aliases can be defined for targets, layouts, layout renderers and conditions
  • Parsing of type-alias will now ignore dashes (-)

Breaking Changes

See rationale here

  • Strong Version Changed
  • Obsolete methods have been removed
  • LoggingRule Filters DefaultAction changed to FilterResult.Ignore, that can cause NO output.
  • NLog.Extensions.Logging without any filter, that can give LOTS of unexpected output.
  • NLog.Extensions.Logging changes capture of EventId, so missing EventId_Id-property
  • NLog.Extensions.Logging makes NLog-section reserved in appsettings.json
  • NLog Extensions assemblies will not load automatically
  • NLog Targets extracted into their own nuget-packages
  • NLog DatabaseTarget extracted into its own NLog.Database nuget-package
  • NLog OutputDebugStringTarget extracted into its own NLog.OutputDebugString nuget-package
  • NLog PerformanceCounterTarget extracted into its own NLog.PerformanceCounter nuget-package
  • NLog ImpersonatingTargetWrapper extracted into its own NLog.WindowsIdentity nuget-package
  • NLog LogReceiverWebServiceTarget extracted into its own NLog.Wcf nuget-package
  • NLog PerformanceCounterLayoutRenderer extracted into its own NLog.PerformanceCounter nuget-package
  • NLog RegistryLayoutRenderer extracted into its own NLog.WindowsRegistry nuget-package
  • NLog WindowsIdentityLayoutRenderer extracted into its own NLog.WindowsIdentity nuget-package
  • Deprecated NLog.Extended nuget-package
  • Deprecated NLog.Config nuget-package
  • Xamarin, Windows Phone and Silverlight platforms replaced by .NET Standard
  • .NET Framework v4.0 platform replaced by .NET Framework v3.5 platform
  • Automatic loading of NLog.config now first check for exe.nlog
  • NLog Configuration will have KeepVariablesOnReload enabled by default
  • Layout and LayoutRenderer are now threadsafe by default
  • Default Layout for NLog Targets has been updated
  • Default Format for NLog Exception layoutrenderer has been updated
  • NLog InternalLogger will not initialize itself from app.config or environment variables
  • Removed obsolete method Target.Write(AsyncLogEventInfo[]) and OptimizeBufferReuse is always true
  • ScopeContext changes MappedDiagnosticContext (MDC) to use AsyncLocal
  • MappedDiagnosticContext (MDC), MappedDiagnosticLogicalContext (MDLC), GlobalDiagnosticContext (GDC) now case-insensitive
  • FileTarget KeepFileOpen = true by default
  • FileTarget ConcurrentWrites = false by default
  • FileTarget Encoding default value changed to UTF8
    ... (truncated)

5.0.0-RC2

Features

  • #​4761 LogFactory fluent Setup with AddCallSiteHiddenAssembly (#​4761) (@​snakefoot)
  • #​4757 Updated JetBrains Annotations with StructuredMessageTemplateAttribute (#​4757) (@​snakefoot)
  • #​4754 JsonArrayLayout - Render LogEvent in Json-Array format (#​4754) (@​snakefoot)
  • #​4711 Added WithProperties-method for Logger-class (#​4711) (@​simoneserra93)
  • #​4613 Added LogFactory.ReconfigureExistingLoggers with purgeObsoleteLoggers option (#​4613) (@​sjafarianm)

Improvements

  • #​4730 MemoryTarget - Updated to implement TargetWithLayoutHeaderAndFooter (#​4730) (@​snakefoot)
  • #​4730 TraceTarget - Updated to implement TargetWithLayoutHeaderAndFooter (#​4730) (@​snakefoot)
  • #​4717 DatabaseTarget - Improved parsing of DbType (#​4717) (@​Orace)

5.0.0-RC1

Features

  • #​4662 LogFactory Setup fluent with SetupLogFactory for general options (#​4662) (@​snakefoot)
  • #​4648 LogFactory fluent Setup with FilterDynamicIgnore + FilterDynamicLog (#​4648) (@​snakefoot)
  • #​4642 TargetWithContext - Added support for ExcludeProperties (#​4642) (@​snakefoot)

Improvements

  • #​4656 FallbackGroupTarget - Added support for EnableBatchWrite (#​4656) (@​snakefoot)
  • #​4655 JsonLayout - ExcludeProperties should also handle IncludeScopeProperties (#​4655) (@​snakefoot)
  • #​4645 TargetWithContext - IncludeEmptyValue false by default (#​4645) (@​snakefoot)
  • #​4646 PropertiesDictionary - Generate unique message-template-names on duplicate keys (#​4646) (@​snakefoot)
  • #​4661 LoggingRule - Fix XML documentation (#​4661) (@​GitHubPang)
  • #​4671 Fixed RegisterObjectTransformation to handle conversion to simple values (#​4671) (@​snakefoot)
  • #​4669 LogLevel - Replaced IConvertible with IFormattable for better Json output (#​4669) (@​snakefoot)
  • #​4676 NLog.Wcf - Updated nuget dependencies to System.ServiceModel ver. 4.4.4 (#​4676) (@​snakefoot)
  • #​4675 FileTarget - Improve fallback logic when running on Linux without File BirthTIme (#​4675) (@​snakefoot)
  • #​4680 FileTarget - Better handling of relative paths with FileSystemWatcher (#​4680) (@​snakefoot)
  • #​4689 Renamed AppSettingLayoutRenderer2 to AppSettingLayoutRenderer after removing NLog.Extended (#​4689) (@​snakefoot)
  • #​4563 Added alias ToUpper and ToLower as alternative to UpperCase and LowerCase (#​4563) (@​snakefoot)
  • #​4695 Ignore dash (-) when parsing layouts, layoutrenderers and targets (#​4695) (@​304NotModified)
  • #​4713 Logger SetProperty marked as obsolete, instead use WithProperty or the unsafe Properties-property (#​4713) (@​snakefoot)
  • #​4714 Hide obsolete methods from intellisense (#​4714) (@​snakefoot)

Performance

  • #​4672 PaddingLayoutRendererWrapper - Pad operation with reduced string allocation (#​4672) (@​snakefoot)
  • #​4698 FileTarget - Use Environment.TickCount to trigger File.Exists checks (#​4698) (@​snakefoot)
  • #​4699 AsyncTargetWrapper - Fix performance for OverflowAction Block on NetCore (#​4699) (@​snakefoot)
  • #​4705 LogEventInfo - Faster clone of messageTemplateParameters by caching Count (#​4705) (@​snakefoot)

4.7.15

Improvements

  • #​4836 Fixed missing initialization of layout-parameters for ConditionMethodExpression (#​4836) (@​snakefoot)
  • #​4821 LogEventInfo - Optimize copy messageTemplateParameters by caching Count (#​4821) (@​snakefoot)
  • #​4820 Improve loading of AppName.exe.nlog with .NET6 single file publish (#​4820) (@​snakefoot)
  • #​4806 NLogConfigurationException - Skip string.Format when no args (#​4806) (@​snakefoot)

4.7.14

Improvements

  • #​4799 Added IncludeEventProperties + IncludeScopeProperties to improve transition (#​4799) (@​snakefoot)
  • #​4786 Refactored code to remove false positives from code analysis (#​4786) (@​snakefoot)

4.7.13

Bugfixes

  • #​4700 AsyncTargetWrapper - Fix performance for OverflowAction Block on NetCore (#​4700) (@​snakefoot)
  • #​4644 AsyncTargetWrapper - Swallow OutOfMemoryException instead of crashing (#​4644) (@​snakefoot)

Improvements

  • #​4649 Fix broken XML doc comment (#​4649) (@​GitHubPang)

New Contributors

4.7.12

Bugfixes

  • #​4627 PropertiesDictionary - Fixed threading issue in EventProperties (#​4627) (@​snakefoot)
  • #​4631 FileTarget - Failing to CleanupInitializedFiles should not stop logging (#​4631) (@​snakefoot)

Features

  • #​4629 LogEventInfo constructor with eventProperties as IReadOnlyList (#​4629) (@​snakefoot)

4.7.11

Bugfixes

  • #​4519 JsonSerializer - Fix CultureNotFoundException with Globalization Invariant Mode (#​4519) (@​snakefoot)

Features

  • #​4475 WebServiceTarget - Added support for assigning UserAgent-Header (#​4475) (@​snakefoot)

4.7.10

Bugfixes

  • #​4401 JsonSerializer - Fixed bug when handling custom IConvertible returning TypeCode.Empty (#​4401) (@​snakefoot)

Improvements

  • #​4391 Support TargetDefaultParameters and TargetDefaultWrapper (#​4391) (@​snakefoot)
  • #​4403 JsonLayout - Apply EscapeForwardSlash for LogEventInfo.Properties (#​4403) (@​snakefoot)
  • #​4393 NLog.Config package: Updated hyperlink (#​4393) (@​snakefoot)

4.7.9

Bugfixes

  • #​4349 Fixed TrimDirectorySeparators to not use the root-path on Linux (#​4349) (@​snakefoot)
  • #​4353 Fixed FileTarget archive cleanup within same folder at startup (#​4353) (@​snakefoot)
  • #​4352 Fixed FileTarget archive cleanup when using short filename (#​4352) (@​snakefoot)

Improvements

  • #​4326 Make it possible to extend the FuncLayoutRenderer (#​4326) (@​304NotModified)
  • #​4369 + #​4375 LoggingConfigurationParser - Recognize LoggingRule.FilterDefaultAction (#​4369 + #​4375) (@​snakefoot)

Performance

  • #​4337 JsonLayout - Avoid constant string-escape of JsonAttribute Name-property (#​4337) (@​snakefoot)

4.7.8

Bugfixes

  • #​4316 Fix TrimDirectorySeparators to handle root-path on Windows and Linux to load Nlog.config from root-path (#​4316) (@​snakefoot)

Improvements

  • #​4273 Handle Breaking change with string.IndexOf(string) in .NET 5 (#​4273) (@​snakefoot)
  • #​4301 Update docs, remove ArrayList in docs (#​4301) (@​304NotModified)

4.7.7

Bugfixes

  • #​4229 Skip lookup MainModule.FileName on Android platform to avoid crash (#​4229) (@​snakefoot)
  • #​4202 JsonLayout - Generate correct json for keys that contain quote (#​4202) (@​virgilp)
  • #​4245 JsonLayout - Unwind after invalid property value to avoid invalid Json (#​4245) (@​snakefoot)

Improvements

  • #​4222 Better handling of low memory (#​4222) (@​snakefoot)
  • #​4221 JsonLayout - Added new ExcludeEmptyProperties to skip GDC/MDC/MLDC properties with null or empty values (#​4221) (@​pruiz)

Performance

  • #​4207 Skip allocation of SingleCallContinuation when ThrowExceptions = false (#​4207) (@​snakefoot)

4.7.6

Bugfixes

  • #​4142 JsonSerializer - Ensure invariant formatting of DateTimeOffset (#​4142) (@​snakefoot)
  • #​4172 AsyncTaskTarget - Flush when buffer is full should not block forever (#​4172) (@​snakefoot)
  • #​4182 Failing to lookup ProcessName because of Access Denied should fallback to Win32-API (#​4182) (@​snakefoot)

Features

  • #​4153 ExceptionLayoutRenderer - Added FlattenException option (#​4153) (@​snakefoot)

Improvements

  • #​4141 NetworkTarget - Improve handling of synchronous exceptions from UdpClient.SendAsync (#​4141) (@​snakefoot)
  • #​4176 AsyncTaskTarget - Include TaskScheduler in ContinueWith (#​4176) (@​snakefoot)
  • #​4190 Improving debugger-display for Logger.Properties and LogEventInfo.Properties (@​snakefoot)

Performance

  • #​4132 Improve thead concurrency when using wrapper cached=true (#​4132) (@​snakefoot)
  • #​4171 ConditionLayoutExpression - Skip allocating StringBuilder for every condition check (#​4171) (@​snakefoot)

4.7.5

Bugfixes

  • #​4106 FileTarget - New current file should write start header, when archive operation is performed on previous file (#​4106) (@​snakefoot)

Improvements

  • #​4102 LoggingConfiguration - ValidateConfig should only throw when enabled (#​4102) (@​snakefoot)
  • #​4114 Fix VerificationException Operation could destabilize the runtime (#​4114) (@​snakefoot)

Performance

  • #​4115 Removed EmptyDefaultDictionary from MappedDiagnosticsContext (#​4115) (@​snakefoot)

Other

  • #​4109 Fix root .editorconfig to use end_of_line = CRLF. Remove local .editorconfig (#​4109) (@​snakefoot)
  • #​4097 Improve docs (#​4097) (@​304NotModified)

4.7.4

Features

  • #​4076 DatabaseTarget - Added AllowDbNull for easier support for nullable parameters (#​4076) (@​snakefoot)

Bugfixes

  • #​4069 Fluent LogBuilder should suppress exception on invalid callerFilePath (#​4069) (@​snakefoot)

Improvements

  • #​4073 FileTarget - Extra validation of the LogEvent-timestamp before checking time to archive (#​4073) (@​snakefoot)
  • #​4068 FileTarget - Improve diagnostic logging to see reason for archiving (@​snakefoot)

4.7.3

Features

  • #​4017 Allow to change the RuleName of a LoggingRule (#​4017) (@​304NotModified)
  • #​3974 logging of AggregrateException.Data to prevent it from losing it after Flatten call (#​3974) (@​chaos0307)

Bugfixes

  • #​4011 LocalIpAddressLayoutRenderer - IsDnsEligible and PrefixOrigin throws PlatformNotSupportedException on Linux (#​4011) (@​snakefoot)

Improvements

  • #​4057 ObjectReflectionCache - Reduce noise from properties that throws exceptions like Stream.ReadTimeout (#​4057) (@​snakefoot)
  • #​4053 MessageTemplates - Changed Literal.Skip to be Int32 to support message templates longer than short.MaxValue (#​4053) (@​snakefoot)
  • #​4043 ObjectReflectionCache - Skip reflection for Stream objects (#​4043) (@​snakefoot)
  • #​3999 LogFactory Shutdown is public so it can be used from NLogLoggerProvider (#​3999) (@​snakefoot)
  • #​3972 Editor config with File header template (#​3972) (@​304NotModified)

Performance

  • #​4058 FileTarget - Skip delegate capture in GetFileCreationTimeSource. Fallback only necessary when appender has been closed....

Description has been truncated

---
updated-dependencies:
- dependency-name: NLog
  dependency-version: 6.0.6
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Nov 12, 2025
@MjrTom
MjrTom merged commit 1ede782 into master Nov 12, 2025
1 of 2 checks passed
@MjrTom
MjrTom deleted the dependabot/nuget/src/Castle.Services.Logging.NLogIntegration/NLog-6.0.6 branch November 12, 2025 01:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.