Skip to content
This repository was archived by the owner on Oct 25, 2025. It is now read-only.

Conversation

@dependabot
Copy link

@dependabot dependabot bot commented on behalf of github Sep 2, 2025

Updated NLog.Schema from 4.3.0 to 6.0.3.

Release notes

Sourced from NLog.Schema's releases.

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.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.0

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.0

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

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)

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. (#​4058) (@​snakefoot)
  • #​4021 ObjectReflectionCache - Reduce initial memory allocation until needed (#​4021) (@​snakefoot)
  • #​3977 FilteringTargetWrapper - Remove delegate allocation (#​3977) (@​snakefoot)

4.7.2

Bugfixes

  • #​3969 FileTarget - ArchiveOldFileOnStartup not working together with ArchiveAboveSize (@​snakefoot)

Improvements

  • #​3962 XSD: Added Enabled attribute for (@​304NotModified)

4.7.1

Features

  • #​3871 LogManager.Setup().LoadConfigurationFromFile("NLog.config") added to fluent setup (@​snakefoot + @​304NotModified)
  • #​3909 LogManager.Setup().GetCurrentClassLogger() added to fluent setup (@​snakefoot + @​304NotModified)
  • #​3861 LogManager.Setup().SetupInternalLogger(s => s.AddLogSubscription()) added to fluent setup (@​snakefoot + @​304NotModified)
  • #​3891 ColoredConsoleTarget - Added Condition option to control when to do word-highlight (@​snakefoot)
  • #​3915 Added new option CaptureStackTrace to ${stacktrace} and ${callsite} to skip implicit capture by Logger (@​snakefoot)
  • #​3940 Exception-LayoutRenderer with new option BaseException for rendering innermost exception (@​snakefoot)

Improvements

  • #​3857 FileTarget - Batch write to filestream in max chunksize of 100 times BufferSize (@​snakefoot)
  • #​3867 InternalLogger include whether NLog comes from GlobalAssemblyCache when logging NLog version (@​snakefoot)
  • #​3862 InternalLogger LogToFile now support ${processdir} to improve support for single-file-publish (@​snakefoot)
  • #​3877 Added ${processdir} that matches ${basedir:processDir=true} for consistency with InternalLogger (@​snakefoot)
  • #​3881 Object property reflection now support IReadOnlyDictionary as expando object (@​snakefoot)
  • #​3884 InternalLogger include more details like FilePath when loading NLog.config file (@​snakefoot)
  • #​3895 Added support for Nullable when doing conversion of property types (@​304NotModified)
  • #​3896 InternalLogger Warnings when skipping unrecognized LayoutRenderer options (@​snakefoot)
  • #​3901 MappedDiagnosticsLogicalContext - SetScoped with IReadOnlyList also for Xamarin (@​snakefoot)
  • #​3904 Object property reflection automatically performs ToString for System.Reflection.Module (@​snakefoot)
  • #​3921 Improve ${basedir:fixtempdir=true} to work better on Linux when TMPDIR not set (@​snakefoot)
  • #​3928 NetworkTarget respect MaxQueueSize for http- / https-protocol (@​snakefoot)
  • #​3930 LogFactory.LoadConfiguration() reports searched paths when throwing FileNotFoundException (@​304NotModified)
  • #​3949 ReplaceNewLines-LayoutRenderer will also remove windows newlines on the Linux platform (@​Silvenga)

Bugfixes

  • #​3868 SplitGroup Target Wrapper should not skip remaining targets when single target fails (@​snakefoot)
  • #​3918 ColoredConsoleTarget - Fix bug in handling of newlines without word-highlight (@​snakefoot)
  • #​3941 ${processid} will no longer fail because unable to lookup ${processdir} on Mono Android (@​snakefoot)

Performance

  • #​3855 FileTarget - Skip checking file-length when only using ArchiveEvery (@​snakefoot)
  • #​3898 ObjectGraphScanner performs caching of property reflection for NLog config items (@​snakefoot)
  • #​3894 Condition expressions now handles operator like '==' without memory boxing (@​snakefoot)
  • #​3903 ObjectGraphScanner should only check for layout-attributes on Layouts and LayoutRenderers (@​snakefoot)
  • #​3902 MessageTemplate parsing of properties skips unnecessary array allocation (@​snakefoot)

4.7

Features

  • #​3686 + #​3740 LogManager.Setup() allows fluent configuration of LogFactory options (@​snakefoot + @​304NotModified)
  • #​3610 LogManager.Setup().SetupSerialization(s => s.RegisterObjectTransformation(...)) for overriding default property reflection (@​snakefoot + @​304NotModified + @​Giorgi + @​mmurrell)
  • #​3787 LogManager.Setup().SetupExtensions(s => s.RegisterConditionMethod(...)) can use lambda methods and not just static methods (@​snakefoot)
  • #​3713 ${level:format=FullName} will expand Info + Warn to their full name (@​snakefoot)
  • #​3714 + #​3734 FileTarget - Supports MaxArchiveDays for cleanup of old files based on their age (@​snakefoot)
  • #​3737 + #​3769 Layout.FromMethod to create Layout directly from a lambda method (@​snakefoot)
  • #​3771 Layout.FromString to create Layout directly from string along with optional parser validation (@​snakefoot)
  • [#​3793](https://github.com/NLog/N...

Description has been truncated

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

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Sep 2, 2025
@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Oct 1, 2025

Superseded by #13.

@dependabot dependabot bot closed this Oct 1, 2025
@dependabot dependabot bot deleted the dependabot/nuget/RemoteSignTool/RemoteSignTool.Client/NLog.Schema-6.0.3 branch October 1, 2025 18:25
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

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