Releases: NLog/NLog
Releases · NLog/NLog
NLog 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)
NLog 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)
NLog 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)
NLog 5.3.2
Bug Fix
- #5515 Fix NullReferenceException when using LoggingRules with filters and no targets (#5515) (@snakefoot)
NLog 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)
NLog 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)
NLog 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)
NLog 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)
NLog 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)
NLog 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)