Skip to content

Releases: NLog/NLog

NLog 6.0.7

09 Dec 08:04
4dd16e8

Choose a tag to compare

Improvements

  • #6056 FileTarget - Archive Cleanup sort filenames using natural ordering. (@snakefoot)
  • #6054 EventProperties - Format Dictionary Properties correctly. (@snakefoot)
  • #6051 Failure to create config item should be reported as InternalLogger Error. (@snakefoot)
  • #6052 PropertiesDictionary - Faster TryGetValue without IsEmpty. (@snakefoot)
  • #6048 PropertiesDictionary - Increase initial capacity when insert. (@snakefoot)
  • #6047 LogEventInfo - Minor optimization of HasImmutableProperties. (@snakefoot)
  • #6057 WhenEmpty - Support AppDomainFixedOutput optimization. (@snakefoot)
  • #6053 JsonAttribute - Reduce code complexity when Encode = false. (@snakefoot)
  • #6044 Target also enforce PreventMultipleCalls when WriteFailedNotInitialized. (@snakefoot)
  • #6042 NLog.RegEx - Fixed Wiki-link in nuget-package. (@snakefoot)

NLog 6.0.6

09 Nov 15:14
1913a82

Choose a tag to compare

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 limit on next LogEvent. (@snakefoot)
  • #6040 XmlParser - Refactor to reduce code complexity. (@snakefoot)
  • #6041 ScopeContextAsyncState - Refactor to reduce code complexity. (@snakefoot)

NLog 6.0.5

09 Oct 06:21
a023270

Choose a tag to compare

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)

NLog 6.0.4

11 Sep 05:52
0f63723

Choose a tag to compare

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)

NLog 6.0.3

10 Aug 18:55
e276e19

Choose a tag to compare

  • #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)

NLog 6.0.2

20 Jul 15:00
57d368f

Choose a tag to compare

  • #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)

NLog 5.5.1

18 Jul 15:21
afa9a20

Choose a tag to compare

  • #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)

NLog 6.0.1

28 Jun 06:09
45ae3f0

Choose a tag to compare

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)

NLog 6.0

21 Jun 13:45
be83582

Choose a tag to compare

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:

  • NLog.Targets.AtomicFile - FileTarget with ConcurrentWrites using atomic file-append from operating system API.
  • NLog.Targets.ConcurrentFile - Legacy FileTarget from NLog v5 with ConcurrentWrites using global operating system mutex.
  • NLog.Targets.GZipFile - FileTarget with EnableArchiveFileCompression using GZipStream for writing GZip compressed log-files.
  • NLog.Targets.Mail - MailTarget depends on System.Net.Mail.SmtpClient.
  • NLog.Targets.Network - NetworkTarget depends on TCP and UDP Network Socket, and adds support for Syslog and Graylog.
  • NLog.Targets.Trace - TraceTarget and NLogTraceListener depends on System.Diagnostics.TraceListener and System.Diagnostics.Trace.
  • NLog.Targets.WebService - WebServiceTarget depends on System.Net.Http.HttpClient.
  • NLog.RegEx - Depends on System.Text.RegularExpressions which is a huge dependency for a logging library.

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

NLog 6.0 RC4

15 Jun 13:28
33b9541

Choose a tag to compare

NLog 6.0 RC4 Pre-release
Pre-release

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)