See also releases and milestones.
Date format: (year/month/day)
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)
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)
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)
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)
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)
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)
Improvements
- #5276 ConfigurationItemFactory - Fix NullReferenceException when skipping already loaded assembly (#5276) (@snakefoot)
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)
Improvements
- #5191 ConfigurationItemFactory annotated for trimming and obsoleted CreateInstance-delegate (#5191) (@snakefoot)
- #5216 Refactor - Apply ThrowIfNull and ThrowIfNullOrEmpty (#5216) (@nih0n)
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)
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)
Improvements
- #5174 LoggingRule - FinalMinLevel with Layout support (#5174) (@Aaronmsv)
- #5177 MailTarget - Added support for email message headers (#5177) (@snakefoot)
- #5175 ScopeContext - Replace rescursive 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)
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)
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)
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)
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)
Fixes
- #5051 Fixed embedded resource with ILLink.Descriptors.xml to avoid IL2007 (#5051) (@snakefoot)
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)
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)
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) (@KurnakovMaksim)
See List of major changes in NLog 5.0.
Improvements
- #4922 NetworkTarget - Dual Mode IPv4 mapped addresses over IPv6 (#4922) (@snakefoot)
- #4895 LogManager.Setup().LoadConfigurationFromAssemblyResource() can load config from embedded resource (#4895) (@snakefoot)
- #4893 NetworkTarget - Reduce memory allocations in UdpNetworkSender (#4893) (@snakefoot)
- #4891 + #4924 Log4JXmlEventLayoutRenderer - IncludeEventProperties default = true (#4891 + #4924) (@snakefoot)
- #4887 NetworkTarget - Support Compress = GZip for UDP with GELF to GrayLog (#4887) (@snakefoot)
- #4882 Updated dependencies for NetStandard1.x to fix warnings (#4882) (@snakefoot)
- #4877 CounterLayoutRenderer - Support 64 bit integer and raw value (#4877) (@snakefoot)
- #4867 WindowsIdentityLayoutRenderer - Dispose WindowsIdentity after use (#4867) (@snakefoot)
- #4863 + #4868 Support SpecialFolder UserApplicationDataDir for internalLogFile when parsing nlog.config (#4863 + #4868) (@snakefoot)
- #4859 RetryingTargetWrapper - Changed RetryCount and RetryDelay to typed Layout (#4859) (@snakefoot)
- #4858 BufferingTargetWrapper - Changed BufferSize + FlushTimeout to typed Layout (#4858) (@snakefoot)
- #4857 LimitingTargetWrapper - Changed MessageLimit + Interval to typed Layout (#4857) (@snakefoot)
- #4838 Added various null checks to improve code quality (#4838) (@KurnakovMaksim)
- #4835 Fixed missing initialization of layout-parameters for ConditionMethodExpression (#4835) (@snakefoot)
- #4824 LogFactory - Avoid checking candidate NLog-config files for every Logger created (#4824) (@snakefoot)
- #4823 Improve InternalLogger output when testing candidate config file locations (#4823) (@snakefoot)
- #4819 Improve loading of AppName.exe.nlog with .NET6 single file publish (#4819) (@snakefoot)
- #4812 Translate ConditionParseException into NLogConfigurationException (#4812) (@snakefoot)
- #4809 NLogConfigurationException - Improve styling of error-message when failing to assign property (#4809) (@snakefoot)
- #4808 NLogRuntimeException constructor with string.Format marked obsolete (#4808) (@snakefoot)
- #4807 NLogConfigurationException constructor with string.Format marked obsolete (#4807) (@snakefoot)
- #4789 FallbackGroupTarget - Improve InternalLogger output when no more fallback (#4789) (@snakefoot)
- #4788 NetworkTarget - Report to InternalLogger at Debug-level when discarding huge LogEvents (#4788) (@snakefoot)
- #4787 Added extra JetBrains Annotations with StructuredMessageTemplateAttribute (#4787) (@snakefoot)
- #4785 Improve InternalLogger output for unnamed nested wrapper targets (#4785) (@snakefoot)
- #4784 Improve InternalLogger output for named nested wrapper targets (#4784) (@snakefoot)
- #4777 DatabaseTarget - Removed alias DB to avoid promoting acronyms (#4777) (@snakefoot)
- #4776 LoggingRule - Allow FinalMinLevel to override previous rules (#4776) (@snakefoot)
- #4775 InternalLogger IncludeTimestamp = true by default to restore original behavior (#4775) (@snakefoot)
- #4773 Fix xml-docs and replaced broken link config.html with wiki-link (#4773) (@snakefoot)
- #4772 Improve InternalLogger output when queue OnOverflow (#4772) (@snakefoot)
- #4770 LogFactory DefaultCultureInfo-setter should also update active config (#4770) (@snakefoot)
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)
- #4613 Added LogFactory.ReconfigureExistingLoggers with purgeObsoleteLoggers option (#4613) (@sjafarianm)
- #4711 Added WithProperties-method for Logger-class (#4711) (@simoneserra93)
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)
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)
Fixes
- #4627 PropertiesDictionary - Fixed threading issue in EventProperties (#4627) (@snakefoot)
Features
- #4598 LogFactory fluent Setup with WriteToTrace + WriteToDebug (#4598) (@snakefoot)
- #4628 LogEventInfo constructor with eventProperties as IReadOnlyList (#4628) (@snakefoot)
- #4633 ${event-properties} now ignore case when doing property lookup (#4633) (@snakefoot)
Improvements
- #4623 FileTarget - KeepFileOpen = true by default to avoid loosing file handle (#4623) (@snakefoot)
- #4624 FileTarget - Only enable FileSystemWatcher when ConcurrentWrites = true (#4624) (@snakefoot)
- #4634 FileTarget - Attempt to write footer, before closing file appender (#4634) (@snakefoot)
- #4632 JsonSerializeOptions - Marked Format + FormatProvider + QuoteKeys as obsolete (#4632) (@snakefoot)
- #4622 Handle OutOfMemoryException instead of crashing the application (#4622) (@snakefoot)
- #4605 Removed DefaultValue-attribute as it is only used for docs-generator (#4605) (@snakefoot)
- #4606 Removed Advanced-attribute as it has no meaning (#4606) (@snakefoot)
Fixes
- #4533 Fixed validation of nlog-element when using include-files (#4533) (@snakefoot)
- #4555 Fixed validation of nlog-element when nested within configuration-element (#4555) (@snakefoot)
Features
- #4542 NetworkTarget - Added OnQueueOverflow with default Discard (#4542) (@snakefoot)
Improvements
- #4544 ScopeContext - Renamed IncludeScopeNestedStates to IncludeScopeNested for consistency (#4544) (@snakefoot)
- #4545 ScopeContext - Renamed PushScopeState to PushScopeNested for consistency (#4545) (@snakefoot)
- #4556 NetworkTarget - Explicit assigning LineEnding activates NewLine automatically (#4556) (@snakefoot)
- #4549 NetworkTarget - UdpNetworkSender changed to QueuedNetworkSender with correct message split (#4549) (@snakefoot)
- #4542 NetworkTarget - Changed OnConnectionOverflow to discard by default (#4542) (@snakefoot)
- #4564 Fixed LayoutParser so Typed Layout works for LayoutRenderer (#4564) (@snakefoot)
- #4580 LayoutRenderer and Layout are now always threadsafe by default (#4580) (@snakefoot)
- #4586 ScopeTiming - No Format specified renders TimeSpan.TotalMilliseconds (#4586) (@snakefoot)
- #4583 ExceptionLayoutRenderer - Separator with basic layout support (#4583) (@snakefoot)
- #4588 StackTraceLayoutRenderer - Separator with basic layout support (#4588) (@snakefoot)
- #4589 ScopeNestedLayoutRenderer - Separator with basic layout support (#4589) (@snakefoot)
See NLog 5 release post: https://nlog-project.org/2021/08/25/nlog-5-0-preview1-ready.html
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)
Improvements
- #4799 Added IncludeEventProperties + IncludeScopeProperties to improve transition (#4799) (@snakefoot)
- #4786 Refactored code to remove false positives from code analysis (#4786) (@snakefoot)
Fixes
- #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)
Fixes
- #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)
Fixes
- #4519 JsonSerializer - Fix CultureNotFoundException with Globalization Invariant Mode (#4519) (@snakefoot)
Features
- #4475 WebServiceTarget - Added support for assigning UserAgent-Header (#4475) (@snakefoot)
Fixes
- #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)
Fixes
- #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)
Fixes
- #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)
Fixes
- #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)
Fixes
- #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 thread concurrency when using wrapper cached=true (#4132) (@snakefoot)
- #4171 ConditionLayoutExpression - Skip allocating StringBuilder for every condition check (#4171) (@snakefoot)
Fixes
- #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)
Features
- #4076 DatabaseTarget - Added AllowDbNull for easier support for nullable parameters (#4076) (@snakefoot)
Fixes
- #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)
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)
Fixes
- #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)
Fixes
- #3969 FileTarget - ArchiveOldFileOnStartup not working together with ArchiveAboveSize (@snakefoot)
Improvements
- #3962 XSD: Added Enabled attribute for (@304NotModified)
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)
Fixes
- #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)
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 ${dir-separator} for rendering platform specific directory path separator (@304NotModified)
- #3755 FileTarget - Supports ArchiveOldFileOnStartupAboveSize for cleanup of existing file when above size (@Sam13)
- #3796 + #3823 InternalLogger - Added LogMessageReceived event (@304NotModified + @snakefoot)
- #3829 DatabaseTarget - Assign connection properties like SqlConnection.AccessToken (@304NotModified + @snakefoot)
- #3839 DatabaseTarget - Assign command properties like SqlCommand.CommandTimeout (@snakefoot)
- #3833 ${onHasProperties} for only rendering when logevent includes properties from structured logging (@snakefoot)
Improvements
- #3521 XmlLoggingConfiguration - Marked legacy constructors with ignoreErrors parameter as obsolete (@snakefoot)
- #3689 LoggingConfiguration - Perform checking of unused targets during initialization for better validation (@snakefoot)
- #3704 EventLogTarget - Improve diagnostics logging when using dynamic EventLog source (@snakefoot)
- #3706 ${longdate} now also supports raw value for use as DatabaseTarget parameter with DbType (@snakefoot)
- #3728 SourceLink for GitHub for easy debugging into the NLog source code (@304NotModified)
- #3743 JsonLayout - EscapeForwardSlash now automatically applies to sub-attributes (@snakefoot)
- #3742 TraceTarget - Introduced EnableTraceFail=false to avoid Environment.FailFast (@snakefoot)
- #3750 ExceptionLayoutRenderer - Improved error message when Format-token parsing fails (@snakefoot)
- #3747 AutoFlushWrapper - Set AutoFlush=false for AsyncTaskTarget by default (@snakefoot)
- #3754 LocalIpAddressLayoutRenderer - Higher priority to network-addresses that has valid gateway adddress (@snakefoot)
- #3762 LogFactory - Flush reports to InternalLogger what targets produces timeouts (@snakefoot)
Fixes
- #3758 LogFactory - Fix deadlock issue with AutoReload (@snakefoot)
- #3766 JsonLayout - Fixed ThreadAgnostic to correctly capture context when using nested JsonLayout (@snakefoot)
- #3700 ExceptionLayoutRenderer - Fixed so Format option HResult also works for NetCore (@snakefoot)
- #3761 + #3784 Log4JXml Layout will render NDLC + NDC scopes in correct order (@adanek + @304NotModified)
- #3821 Logger - Added exception handler for CallSite capture for platform that fails to capture StackTrace (@snakefoot)
- #3835 StringSplitter - Fixed quote handling when reading elements for config list-properties (@snakefoot)
- #3828 Utilities: fix ConversionHelpers.TryParseEnum for white space (@304NotModified)
Performance
- #3683 ObjectGraphScanner - Avoid holding list.SyncRoot lock while scanning (@snakefoot)
- #3691 FileTarget - ConcurrentWrites=true on NetCore now much faster when archive enabled (@snakefoot)
- #3694 + #3705 JsonConverter - Write DateTime directly without string allocation (@snakefoot)
- #3692 XmlLayout - Removed unnecessary double conversion to string (@snakefoot)
- #3735 WebServiceTarget - Reduced memory allocations by removing unnecessary delegate capture (@snakefoot)
- #3739 NetworkTarget - Reduced memory allocation for encoding into bytes without string allocation (@snakefoot)
- #3748 AsyncTaskTarget - Skip default AsyncWrapper since already having internal queue (@snakefoot)
- #3767 Mark Condition Expressions as ThreadSafe to improve concurrency in Layouts (@snakefoot)
- #3764 DatabaseTarget - Added IsolationLevel option that activates transactions for better batching performance (@snakefoot)
- #3779 SimpleLayout - Assignment of string-reference with null-value will translate into FixedText (@304NotModified)
- #3790 AsyncWrapper - Less aggressive with scheduling timer events for background writing (@snakefoot)
- #3830 Faster assignment of properties accessed through reflection (@304NotModified)
- #3832 ${replace} - Faster search and replace when not explicitly have requested regex support (@snakefoot)
- #3828 Skip need for Activator.CreateInstance in DbTypeSetter (@304NotModified)
Fixes
- #3566 DatabaseTarget - Auto escape special chars in password, and improve handling of empty username/password (@304NotModified)
- #3584 LoggingRule - Fixed IndexOutOfRangeException for SetLoggingLevels with LogLevel.Off (@snakefoot)
- #3609 FileTarget - Improved handling of relative path in ArchiveFileName (@snakefoot)
- #3631 ExceptionLayoutRenderer - Fixed missing separator when Format-value gives empty result (@brinko99)
- #3647 ${substring} - Length should not be mandatory (@304NotModified)
- #3653 SimpleLayout - Fixed NullReferenceException in PreCalculate during TryGetRawValue optimization (@snakefoot)
Features
- #3578 LogFactory - AutoShutdown can be configured to unhook from AppDomain-Unload, and avoid premature shutdown with IHostBuilder (@snakefoot)
- #3579 PerformanceCounterLayoutRenderer - Added Layout-support for Instance-property (@snakefoot)
- #3583 ${local-ip} Layout Renderer for local machine ip-address (@snakefoot + @304NotModified)
- #3583 CachedLayoutRendererWrapper - Added CachedSeconds as ambient property. Ex. ${local-ip:cachedSeconds=60} (@snakefoot)
- #3586 JsonLayout - Added EscapeForwardSlash-option to skip Json-escape of forward slash (@304NotModified)
- #3593 AllEventPropertiesLayoutRenderer - Added Exclude-option that specifies property-keys to skip (@snakefoot)
- #3611 ${Exception} - Added new Format-option values HResult and Properties (@snakefoot)
Improvements
- #3622 + #3651 ConcurrentRequestQueue refactoring to reduce code complexity (@snakefoot)
- #3636 AsyncTargetWrapper now fallback to clearing internal queue if flush fails to release blocked writer threads (@snakefoot)
- #3641 ${CallSite} - Small improvements for recognizing async callsite cases (@snakefoot)
- #3642 LogManager.GetCurrentClassLogger - Improved capture of Logger name when called within lambda_method (@snakefoot)
- #3649 ${BaseDir:FixTempDir=true} fallback to process directory for .NET Core 3 Single File Publish (@snakefoot)
- #3649 Auto-loading NLog configuration from process.exe.nlog will priotize process directory for .NET Core 3 Single File Publish (@snakefoot)
- #3654 ObjectPathRendererWrapper minor refactorings (@snakefoot)
- #3660 ObjectHandleSerializer.GetObjectData includes SerializationFormatter=true for use in MDLC + NDLC (@snakefoot)
- #3662 FileTarget - Extra logging when FileName Layout renders empty string (@snakefoot)
Performance
- #3618 LogFactory - Faster initial assembly reflection and config loading (@snakefoot)
- #3635 ConsoleTarget - Added WriteBuffer option that allows batch writing to console-stream with reduced allocations (@snakefoot)
- #3635 ConsoleTarget - Added global lock to prevent any threadsafety issue from unsafe console (@snakefoot)
Features
- #3531 Added ${object-path} / ${exception:objectpath=PropertyName}, for rendering a property of an object (e.g. an exception) (#3531) (@304NotModified)
- #3560 WhenMethodFilter - Support dynamic filtering using lambda (#3560) (@snakefoot)
- #3184 Added support for dynamic layout renderer in log level filters (e.g. minLevel, maxLevel) (#3184) (@snakefoot)
- #3558 ExceptionLayoutRenderer - Added Source as new format parameter. (@snakefoot)
- #3523 ColoredConsoleTarget - Added DetectOutputRedirected to skip coloring on redirect (@snakefoot)
Improvements
- #3541 MessageTemplateParameters - Improve validation of parameters when isPositional (#3541) (@snakefoot)
- #3546 NetworkTarget - HttpNetworkSender no longer sends out-of-order (@snakefoot)
- #3522 NetworkTarget - Fix InternalLogger.Trace to include Target name (#3522) (@snakefoot)
- #3562 XML config - Support ThrowConfigExceptions=true even when xml is invalid (@snakefoot)
- #3532 Fix summary of NoRawValueLayoutRendererWrapper class (#3532) (@304NotModified)
Performance
- #3540 MessageTemplateParameters - Skip object allocation when no parameters (@snakefoot)
- #3527 XmlLayout - Defer allocation of ObjectReflectionCache until needed (#3527) (@snakefoot)
Features
- #3514 Added XmlLoggingConfiguration(XmlReader reader) ctor, improved docs and annotations (@dmitrychilli, @304NotModified)
- #3513 AutoFlushTargetWrapper - Added FlushOnConditionOnly property (@snakefoot)
Performance
- #3492 FileTarget - improvements when ConcurrentWrites=false (@snakefoot)
Fixes
- #3476 Fix broken XSD schema - NLog.Schema package (@snakefoot, @304NotModified)
Features
- #3478 XSD: Support
<value>
in<variable>
(@304NotModified) - #3477 ${AppSetting} - Added support for ConnectionStrings Lookup (@snakefoot)
- #3469 LogLevel - Added support for TypeConverter (@snakefoot)
- #3453 Added null terminator line ending for network target (@Kahath)
- #3442 Log4JXmlEventLayout - Added IncludeCallSite + IncludeSourceInfo (@snakefoot)
Improvements
- #3482 Fix typos in docs and comments (@304NotModified)
Performance
- #3444 RetryingMultiProcessFileAppender - better init BufferSize (@snakefoot)
Fixes
- #3392 NLog.Schema: Added missing defaultAction attribute on filters element in XSD (@304NotModified)
- #3415 AsyncWrapper in Blocking Mode can cause deadlock (@snakefoot)
Features
- #3430 Added "Properties" property on Logger for reading and editing properties.(@snakefoot, @304NotModified)
- #3423 ${all-event-properties}: Added IncludeEmptyValues option (@304NotModified)
- #3394 ${when}, support for non-string values (@304NotModified)
- #3398 ${whenEmpty} support for non-string values (@snakefoot, @304NotModified)
- #3391 Added ${environment-user} (@snakefoot)
- #3389 Log4JXmlEventLayout - Added support for configuration of Parameters (@snakefoot)
- #3411 LoggingConfigurationParser - Recognize LoggingRule.RuleName property (@snakefoot)
Improvements
- #3393 Update package descriptions to note the issues with
<PackageReference>
(@304NotModified) - #3409 Various XSD improvements (NLog.Schema package) (@304NotModified)
Performance
- #3398 ${whenEmpty} faster rendering of string values (@snakefoot, @304NotModified)
- #3405 FilteringTargetWrapper: Add support for batch writing (@snakefoot, @304NotModified)
- #3405 PostFilteringTargetWrapper: performance optimizations (@snakefoot, @304NotModified)
- #3435 Async / buffering wrapper: Improve performance when blocking (@snakefoot)
- #3434 ObjectReflectionCache - Skip property-reflection for IFormattable (@snakefoot)
Fixes
- #3345 Fixed potential memory issue and message duplication with large strings (@snakefoot)
- #3316 TargetWithContext - serialize MDC and MDLC values properly (@304NotModified)
Features
- #3298 Added WithProperty and SetProperty on Logger (@snakefoot)
- #3329 ${EventProperties} - Added ObjectPath for rendering nested property (@snakefoot, @304NotModified)
- #3337 ${ShortDate} added support for IRawValue + IStringValueRenderer (@snakefoot)
- #3328 Added truncate ambient property, e.g. ${message:truncate=80} (@snakefoot)
- #3278 ConsoleTarget & ColoredConsoleTarget - Added AutoFlush and improve default flush behavior (@snakefoot)
Improvements
- #3322 FileTarget - Introduced EnableFileDeleteSimpleMonitor without FileSystemWatcher for non-Windows (@snakefoot)
- #3332 LogFactory - GetLogger should validate name of logger (@snakefoot)
- #3320 FallbackGroupTarget - Fixed potential issue with WINDOWS_PHONE (@snakefoot)
- #3261 NLog config file loading: use process name (e.g. applicationname.exe.nlog) when app.config is not available (@snakefoot)
Performance
- #3311 Split string - avoid allocation of object array. Added StringHelpers.SplitAndTrimTokens (@snakefoot)
- #3305 AppSettingLayoutRenderer - Mark as ThreadSafe and ThreadAgnostic (@snakefoot)
Other
- #3338 Update docs of various context classes (@304NotModified)
- #3288 Move NLogPackageLoaders for better unittest debugging experience of NLog (@304NotModified)
- #3274 Make HttpNetworkSender mockable, add unit test, introduce NSubsitute (@304NotModified)
- 10 pull requests with refactorings (@snakefoot, @304NotModified)
Fixes
- #3260 Fix escaping nested close brackets when parsing layout renderers (@lobster2012-user)
- #3271 NLog config - Fixed bug where empty xml-elements were ignored (@snakefoot, @jonreis)
Fixes
- #3199 LoggingConfigurationParser - Fixed bug in handling of extensions prefix (@snakefoot)
- #3253 Fix wrong warnings on
<nlog>
element (only wrong warnings) (#3253) (@snakefoot, @304NotModified) - #3195 SimpleStringReader: fix DebuggerDisplay value (#3195) (@lobster2012-user)
- #3198 XmlLayout - Fixed missing encode of xml element value (@snakefoot)
- #3191 VariableLayoutRenderer - Fixed format-string for internal logger warning (@snakefoot, @lobster2012-user)
- #3258 Fix error with Embedded Assembly in LogAssemblyVersion (@snakefoot)
Improvements
- #3255 Auto-flush on process exit improvements (@snakefoot)
- #3189 AsyncTaskTarget - Respect TaskDelayMilliseconds on low activity (@snakefoot)
Performance
- #3256 ${NDLC} + ${NDC} - Faster checking when TopFrames = 1 (@snakefoot)
- #3201 ${GDC} reading is now lockfree (#3201) (@snakefoot)
Features
- #2363 + #2899 + #3085 + #3091 Database target: support for DbType for parameters (including SqlDbType) - (@hubo0831,@ObikeDev,@sorvis, @304NotModified, @snakefoot)
- #2610 AsyncTargetWrapper with LogEventDropped- + LogEventQueueGrow-events (@Pomoinytskyi)
- #2670 + #3014 XmlLayout - Render LogEventInfo.Properties as XML (@snakefoot)
- #2678 NetworkTarget - Support for SSL & TLS (@snakefoot)
- #2709 XML Config: Support for constant variable in level attributes (level, minlevel, etc) (@304NotModified)
-
#2848 Added defaultAction for
<filter>
(@304NotModified) - #2849 IRawValue-interface and ${db-null} layout renderer (@304NotModified)
- #2902 JsonLayout with support for System.Dynamic-objects (@304NotModified)
- #2907 New Substring, Left & Right Wrappers (@304NotModified)
-
#3098
<rule>
support for one or more '*' and '?' wildcards and in any position (@beppemarazzi) - #2909 AsyncTaskTarget - BatchSize + RetryCount (@snakefoot)
- #3018 ColoredConsoleTarget - Added EnableAnsiOutput option (VS Code support) (@jp7677 + @snakefoot)
- #3031 + #3092 Support ${currentdir},${basedir},${tempdir} and Environment Variables for internalLogFile when parsing nlog.config (@snakefoot)
- #3050 Added IncludeGdc property in JsonLayout (@casperc89)
- #3071 ${HostName} Layout Renderer for full computer DNS name (@amitsaha)
- #3053 ${AppSetting} Layout Renderer (app.config + web.config) moved from NLog.Extended for NetFramework (@snakefoot)
- #3060 TargetWithContext - Support for PropertyType using IRawValue-interface (@snakefoot)
- #3124 NetworkTarget - Added support for KeepAliveTimeSeconds (@snakefoot)
- #3129 ConfigSetting - Preregister so it can be accessed without extension registration (#3129) (@snakefoot)
- #3165 Added noRawValue layout wrapper (@snakefoot)
Improvements
- #2989 JsonLayout includes Type-property when rendering Exception-object (@snakefoot)
- #2891 LoggingConfigurationParser - Extracted from XmlLoggingConfiguration (Prepare for appsettings.json) (@snakefoot)
- #2910 Added support for complex objects in MDLC and NDLC on Net45 (@snakefoot)
- #2918 PerformanceCounter - Improve behavior for CPU usage calculation (@snakefoot)
- #2941 TargetWithContext - Include all properties even when duplicate names (@snakefoot)
- #2974 Updated resharper annotations for better validation (@imanushin)
- #2979 Improve default reflection support on NetCore Native (@snakefoot)
- #3017 EventLogTarget with better support for MaximumKilobytes configuration (@Coriolanuss)
- #3039 Added Xamarin PreserveAttribute for the entire Assembly to improve AOT-linking (@snakefoot)
- #3045 Create snupkg packages and use portable PDB (@snakefoot)
- #3048 KeepFileOpen + ConcurrentWrites on Xamarin + UWP - #3079 (@304NotModified)
- #3082 + #3100 WebService Target allow custom override of SoapAction-header for Soap11 (@AlexeyRokhin)
- #3162 ContextProperty with IncludeEmptyValue means default value for ValueType (#3162) (@snakefoot)
- #3159 AppSettingLayoutRenderer - Include Item for NLog.Extended (@snakefoot)
- #3187 AsyncTaskTarget - Fixed unwanted delay caused by slow writer (@snakefoot)
- Various refactorings (19 pull requests) (@beppemarazzi, @304NotModified, @snakefoot)
Performance
- #2650 AsyncTargetWrapper using ConcurrentQueue for NetCore2 for better thread-concurrency (@snakefoot)
- #2890 AsyncTargetWrapper - TimeToSleepBetweenBatches changed default to 1ms (@snakefoot)
- #2897 InternalLogger performance optimization when LogLevel.Off (@snakefoot)
- #2935 InternalLogger LogLevel changes to LogLevel.Off by default unless being used. (@snakefoot)
- #2934 CsvLayout - Allocation optimizations and optional skip quoting-check for individual columns. (@snakefoot)
- #2949 MappedDiagnosticsLogicalContext - SetScoped with IReadOnlyList (Prepare for MEL BeginScope) (@snakefoot)
- #2973 IRenderString-interface to improve performance for Layout with single LayoutRenderer (@snakefoot)
- #3103 StringBuilderPool - Reduce memory overhead until required (@snakefoot)
LibLog Breaking change
- damianh/LibLog#181 - Sub-components using LibLog ver. 5.0.3 (or newer) will now use MDLC + NDLC (Instead of MDC + NDC) when detecting application is using NLog ver. 4.6. Make sure to update NLog.config to match this change. Make sure that all sub-components have upgraded to LibLog ver. 5.0.3 (or newer) if they make use of
OpenNestedContext
orOpenMappedContext
.
See also NLog 4.6 Milestone
Improvements
- #2985 LogBuilder - Support fluent assignment of message-template after properties (@snakefoot)
- #2983 JsonSerializer - Use ReferenceEquals instead of object.Equals when checking for cyclic object loops (#2983) (@snakefoot)
- #2988 NullAppender - Added missing SecuritySafeCritical (@snakefoot)
Fixes
- #2987 JSON encoding should create valid JSON for non-string dictionary-keys (@snakefoot)
Fixes
- #2883 Fix LoadConfiguration for not found config file (@snakefoot, @304NotModified)
Fixes
- #2865 JSON encoding should create valid JSON for special double values (@snakefoot)
Improvements
- #2846 Include Entry Assembly File Location when loading candidate NLog.config (@snakefoot)
Features
- #2809 MethodCallTarget - Support for Lamba method (@snakefoot)
- #2816 MessageTemplates - Support rendering of alignment + padding (@snakefoot)
Fixes
- #2827 FileTarget - Failing to CreateArchiveMutex should not stop logging (@snakefoot)
- #2830 Auto loading of assemblies was broken in some cases (@snakefoot)
Improvements
- #2814 LoggingConfiguration - Improves CheckUnusedTargets to handle target wrappers (@snakefoot)
Performance
- #2817 Optimize LayoutRendererWrappers to reduce string allocations (#2817) (@snakefoot)
Features
- #2792 OutputDebugStringTarget - Support Xamarin iOS and Android (@snakefoot)
- #2776 FileTarget - Introduced OpenFileFlushTimeout to help when AutoFlush = false (@snakefoot)
Fixes
- #2761 ${Callsite} fix class naming when includeNamespace=false and cleanNamesOfAnonymousDelegates=true (@Azatey)
- #2752 JSON: Fixes issue where char types are not properly escaped (#2752) (@smbecker)
Improvements
- #2804 FileTarget - Do not trust Last File Write TimeStamp when AutoFlush=false (@snakefoot)
- #2763 Throw better error when target name is null (@masters3d)
- #2788 ${Assembly-version} make GetAssembly protected and virtual (@alexangas)
- #2756 LongDateLayoutRenderer: Improve comments (@stic)
- #2749 NLog.WindowsEventLog: Update dependency System.Diagnostics.EventLog to RTM version (@304NotModified)
Performance
- #2797 Better performance with Activator.CreateInstance (@tangdf)
Fixes
- #2747 JsonSerializer - Generate valid Json when hitting the MaxRecursionLimit (@snakefoot)
- Fixup for NLog.WindowsEventLog package
Improvements
- #2745 FileTarget - Improve support for Linux FileSystem without BirthTime (@snakefoot)
Performance
- #2744 LogEventInfo - HasProperties should allocate PropertiesDicitonary when needed (@snakefoot)
- #2743 JsonLayout - Reduce allocations when needing to escape string (44% time improvement) (@snakefoot)
Fixes
- #2736 FileTarget - Calculate correct archive date when multiple file appenders (@snakefoot)
Features
- #2726 WhenRepeated - Support logging rules with multiple targets (@snakefoot)
- #2727 Support for custom targets that implements IUsesStackTrace (@snakefoot)
- #2719 DatabaseTarget: use parameters on install (@Jejuni)
Improvements
- #2718 JsonLayout - Always stringify when requested (@snakefoot)
- #2739 Target.WriteAsyncLogEvents(IList) to public
Performance
- #2704 Allocation improvement in precalculating layouts (@snakefoot)
Fixes
- #2688 Faulty invalidate of FormattedMessage when getting PropertiesDictionary (@snakefoot)
- #2687 Fix: NLog.config build-action and copy for non-core projects, it's now "copy if newer" (@304NotModified)
- #2698 FileTarget - Calculate correct archive date, when using Monthly archive (@snakefoot)
Improvements
- #2673 TargetWithContext - Easier to use without needing to override ContextProperties (@snakefoot)
- #2684 DatabaseTarget - Skip static assembly lookup for .Net Standard (@snakefoot)
- #2689 LogEventInfo - Structured logging parameters are not always immutable (@snakefoot)
- #2679 Target.WriteAsyncThreadSafe should always have exception handler (@snakefoot)
- #2586 Target.MergeEventProperties is now obsolete (@snakefoot)
- Sonar warning fixes: #2691, #2694, #2693, #2690, #2685, #2683, #2696 (@snakefoot, @304NotModified)
Fixes
- #2662 FileTarget - Improve handling of archives with multiple active files (@snakefoot)
Improvements
- #2587 Internal Log - Include target type and target name in the log messages (@snakefoot)
- #2651 Searching for NLog Extension Files should handle DirectoryNotFoundException (@snakefoot)
Performance
- #2653 LayoutRenderer ThreadSafe Attribute introduced to allow lock free Precalculate + other small performance improvements (@snakefoot)
Features
- #2648 ${processtime} and ${time} added invariant option (@snakefoot)
Fixes
- #2643 UWP with NetStandard2 on Net Native does not support Assembly.CodeBase + Handle native methods in StackTrace (#2643) (@snakefoot)
- #2644 FallbackGroupTarget: handle async state on fallback correctly (@snakefoot)
Performance
- #2645 Minor performance optimization of some layoutrenderers (@snakefoot)
- #2642 FileTarget - InitializeFile should skip dictionary lookup when same file (@snakefoot)
Fixes
- #2637 Fix IndexOutOfRangeException in NestedDiagnosticsLogicalContext (@snakefoot)
- #2638 Handle null values correctly in LogReceiverSecureService (@304NotModified)
Performance
- #2639 MessageTemplates - Optimize ParseHole for positional templates (@snakefoot)
- #2640 FileTarget - InitializeFile no longer need justData parameter + dispose fileapenders earlier (@snakefoot)
- #2628 RoundRobinGroupTarget - Replaced lock with Interlocked for performance (@snakefoot)
NLog 4.5 adds structured logging and .NET Standard support/UPW without breaking changes! Also a lot features has been added!
List of important changes in NLog 4.5
Features
- Support for .Net Standard 2.0 #2263 + #2402 (@snakefoot)
- Support for .Net Standard 1.5 #2341 (@snakefoot)
- Support for .Net Standard 1.3 (and UWP) #2441 + #2597 (Remember to manually flush on app suspend). (@snakefoot)
- Introduced Structured logging #2208 + #2262 + #2244 + #2544 (@snakefoot, @304NotModified, @jods4, @nblumhardt) - see https://github.com/NLog/NLog/wiki/How-to-use-structured-logging
- Json conversion also supports object properties #2179, #2555 (@snakefoot, @304NotModified)
- event-properties layout-renderer can now render objects as json #2241 (@snakefoot, @304NotModified)
- exception layout-renderer can now render exceptions as json #2357 (@snakefoot)
- Default file archive logic is now easier to use #1993 (@snakefoot)
- Introduced InstallationContext.ThrowExceptions #2214 (@rbarillec)
- WebServiceTarget - Allow configuration of proxy address #2375 (@snakefoot)
- WebServiceTarget - JsonPost with JsonLayout without being wrapped in parameter #2590 (@snakefoot)
- ${guid}, added GeneratedFromLogEvent #2226 (@snakefoot)
- TraceTarget RawWrite to always perform Trace.WriteLine independent of LogLevel #1968 (@snakefoot)
- Adding OverflowAction options to BufferingTargetWrapper #2276 (@mikegron)
- WhenRepeatedFilter - Filtering of identical LogEvents #2123 + #2297 (@snakefoot)
- ${callsite} added CleanNamesOfAsyncContinuations option #2292 (@tkhaugen, @304NotModified)
- ${ndlctiming} allows timing of ndlc-scopes #2377 (@snakefoot)
- NLogViewerTarget - Enable override of the Logger-name #2390 (@snakefoot)
- ${sequenceid} added #2411 (@MikeFH)
- Added "regex-matches" for filtering #2437 (@MikeFH)
- ${gdc}, ${mdc} & {mdlc} - Support Format parameter #2500 (@snakefoot)
- ${currentDir} added #2491 (@UgurAldanmaz)
- ${AssemblyVersion}: add type (File, Assembly, Informational) option #2487 (@alexangas)
- FileTarget: Support byte order mark #2456 (@KYegres)
- TargetWithContext - Easier to create custom NLog targets with support for MDLC and NDLC #2467 (@snakefoot)
- ${callname-filename} - Without line number #2591 (@brunotag)
- MDC + MDLC with SetScoped property support #2592 (@MikeFH)
- LoggingConfiguration AddRule includes final-parameter #2612 (@893949088)
Fixes
- Improve archive stability during concurrent file access #1889 (@snakefoot)
- FallbackGroup could lose log events #2265 (@frabar666)
- ${exception} - only include separator when items are available #2257 (@jojosardez)
- LogFactory - Fixes broken EventArgs for ConfigurationChanged #1897 (@snakefoot)
- Do not report wrapped targets as unused targets #2290 (@thesmallbang)
- Added IIncludeContext, implemented missing properties #2117 (@304NotModified)
- Improve logging of callsite linenumber for async-methods #2386 (@snakefoot)
- NLogTraceListener - DisableFlush is enabled by default when AutoFlush=true #2407 (@snakefoot)
- NLogViewer - Better defaults for connection limits #2404 (@304NotModified)
- LoggingConfiguration.LoggingRules is not thread safe #2393, #2418
- Fix XmlLoggingConfiguration reloading #2475 (@snakefoot)
- Database Target now supports EntityFramework ConnectionStrings #2510 (@Misiu, @snakefoot)
- LoggingConfiguration.RemoveTarget now works while actively logging #2549 (@jojosardez, @snakefoot)
- FileTarget does not fail on platforms without global mutex support #2604 (@snakefoot)
- LoggingConfiguration does not fail when AutoReload is not possible on the platforms without FileWatcher #2603 (@snakefoot)
Performance
- More targets has OptimizeBufferReuse enabled by default #1913 + #1923 + #1912 + #1911 + #1910 + #1909 + #1908 + #1907 + #2560 (@snakefoot)
- StringBuilderPool - Improved Layout Render Performance by reusing StringBuilders #2208 (@snakefoot)
- JsonLayout - Improved Layout Performance, by optimizing use of StringBuilder #2208 (@snakefoot)
- FileTarget - Faster byte-encoding of log messsages, by using crude Encoding.GetMaxByteCount() instead of exact Encoding.GetByteCount() #2208 (@snakefoot)
- Target - Precalculate Layout should ignore sub-layouts for complex layout (Ex Json) #2378 (@snakefoot)
- MessageLayoutRenderer - Skip
string.Format
allocation (for caching) when writing to a single target, instead format directly into output buffer. #2507 (@snakefoot)
Changes since rc 07:
- #2621 Single Target optimization logic refactored to reuse optimization approval (@snakefoot)
- #2622 NetworkTarget - Http / Https should not throw on async error response (@snakefoot)
- #2619 NetworkTarget - Reduce allocation when buffer is less than MaxMessageSize (@snakefoot)
- #2616 LogManager.Shutdown - Should disable file watcher and avoid auto reload (@snakefoot)
- #2620 Single Target optimization should only be done when parseMessageTemplate = null (@snakefoot)
- #2614 NLog 4.5 RC7 changelog & version (@304NotModified)
- #2612 add final param to
AddRule
Methods (#2612) (@893949088) - #2590 WebServiceTarget - JsonPost with support for single nameless parameter (@snakefoot)
- #2604 FileTarget - Failing to CreateArchiveMutex should not stop logging (#2604) (@snakefoot)
- #2592 Make Set methods of MDC and MDLC return IDisposable (#2592) (@MikeFH)
- #2591 callsite-filename renderer (#2591) (@brunotag)
- #2597 Replace WINDOWS_UWP with NETSTANDARD1_3 to support UWP10 shared libraries (@snakefoot)
- #2599 TryImplicitConversion should only check object types (@snakefoot)
- #2595 IsSafeToDeferFormatting - Convert.GetTypeCode is faster and better (@snakefoot)
- #2609 NLog - Fix Callsite when wrapping ILogger in Microsoft Extension Logging (@snakefoot)
- #2613 Attempt to make some unit-tests more stable (@snakefoot)
- #2603 MultiFileWatcher - Improve error handling if FileSystemWatcher fails (@snakefoot)
- #2585 NLog 4.5 rc6 version and changelog (#2585) (@304NotModified)
- #2581 MessageTemplateParameter(s) ctors to internal (@304NotModified)
- #2576 Fix possible infinite loop in message template parser + better handling incorrect templates (@304NotModified)
- #2580 ColoredConsoleTarget.cs: Fix typo (@perlun)
- #2571 4.5 rc5 version and release notes (@304NotModified)
- #2572 copyright 2018 (@304NotModified)
- #2570 Update nuspec NLog.Config and NLog.Schema (@304NotModified)
- #2542 Added TooManyStructuredParametersShouldKeepBeInParamList testcase (@304NotModified)
- #2467 TargetWithContext - Easier to capture snapshot of MDLC and NDLC context (#2467) (@snakefoot)
- #2555 JsonLayout - Added MaxRecursionLimit and set default to 0 (@snakefoot)
- #2568 WebServiceTarget - Rollback added Group-Layout (@snakefoot)
- #2544 MessageTemplate renderer with support for mixed mode templates (@snakefoot)
- #2538 Renamed ValueSerializer to ValueFormatter (@snakefoot)
- #2554 LogBuilder - Check level before allocation of Properties-dictionary (@snakefoot)
- #2550 DefaultJsonSerializer - Reflection should skip index-item-properties (@snakefoot)
- #2549 LoggingConfiguration - FindTargetByName should also find target + fix for logging on a target even after removed (@snakefoot)
- #2548 IAppDomain.FriendlyName should also work on NetStandard15 (@snakefoot)
- #2563 WebService-Target fails internally with PlatformNotSupportedException on NetCore (@snakefoot)
- #2560 Network/NLogViewer/Chainsaw Target - Enabled OptimizeBufferReuse by default, but not for sub classes (@snakefoot)
- #2551 Blackhole LoggingRule without targets (@snakefoot)
- #2534 Docs for DefaultJsonSerializer/(i)ValueSerializer (#2534) (@304NotModified)
- #2519 RegisterItemsFromAssembly - Include assemblies from nuget packages (Strict) (@304NotModified, @snakefoot)
- #2524 FileTarget - Dynamic archive mode with more strict file-mask for cleanup (@snakefoot)
- #2518 DatabaseTarget - Added DbProvider System.Data.SqlClient for NetStandard (@snakefoot)
- #2514 Added missing docgen for different options (Less noise in appveyor) (@snakefoot)
- #2490 LogEventInfo.MessageTemplateParameters as class instead of interface (#2490) (@snakefoot)
- #2510 Database target entity framework connection string (@snakefoot)
- #2513 Update docs for [AppDomainFixedOutput], remove [AppDomainFixedOutput] on ${currentDir} (@NLog)
- #2512 LogManager.LoadConfiguration - Support relative paths by default (@snakefoot)
- #2507 Reduce string allocations for logevents with single target destination (@snakefoot)
- #2491 Added ${currentDir} (#2491) (@UgurAldanmaz)
- #2500 ${gdc}, ${mdc} & {mdlc} - Support Format parameter (@snakefoot)
- #2497 RegisterItemsFromAssembly - Include assemblies from nuget packages (Fix) (@snakefoot)
- #2472 LogManager.LoadConfiguration - Prepare for custom config file readers (@snakefoot)
- #2486 JsonConverter- Sanitize Exception.Data dictionary keys option (on by default) (@snakefoot)
- #2495 MultiFileWatcher - Detach from FileSystemWatcher before disposing (@snakefoot)
- #2493 RegisterItemsFromAssembly - Include assemblies from nuget packages (@snakefoot)
- #2487 Adds version types to AssemblyVersion layout renderer (#2487) (@alexangas)
- #2464 Add methods to enabling/disabling LogLevels (@MikeFH)
- #2477 fix typo (@heldersepu)
- #2485 FileTarget - Dispose Archive-Mutex after completing file-archive (@snakefoot)
- #2475 Fix XmlLoggingConfiguration reloading (@MikeFH)
- #2471 TreatWarningsAsErrors = true (@snakefoot)
- #2462 AsyncLogEventInfo - Removed private setter (@snakefoot)
- #2460 NLog 4.5 rc3 version and changelog (@304NotModified)
- #2459 StringBuilderExt.CopyToStream - Optimize MemoryStream allocation (@snakefoot)
- #2456 FileTarget: Support byte order mark (optional) (#2456) (@KYegres)
- #2453 NestedDiagnosticsContext - Only allocate Stack-object on Write (@snakefoot)
- #2458 Document and (minor) refactor on MruCache class (@ie-zero)
- #2452 ThreadLocalStorageHelper - NetStandard only allocate when needed (@snakefoot)
- #2444 NLog 4.5 RC2 version and changelog (@304NotModified)
- #2450 No need to call type(T) (@304NotModified)
- #2451 FileTarget - Improved and less internal logging (@snakefoot)
- #2449 Refactor: fix comment, remove unused, cleanup, String ->` string etc (#2449) (@304NotModified)
- #2447 CallSiteInformation - Prepare for fast classname lookup from filename and linenumber (@snakefoot)
- #2446 Refactor - split methodes, remove duplicates (#2446) (@304NotModified)
- #2437 Create regex-matches condition method (#2437) (@MikeFH)
- #2441 Support for UWP platform (@snakefoot)
- #2439 Better config Better Code Hub (@304NotModified)
- #2431 NetCoreApp - Improve auto loading of NLog extension dlls (@snakefoot)
- #2418 LoggingConfiguration - Modify and clone LoggingRules under lock (@snakefoot)
- #2422 Avoid unnecessary string-allocation, skip unnecessary lock (@snakefoot)
- #2419 Logger - Added missing MessageTemplateFormatMethodAttribute + removed obsolete internal method (@snakefoot)
- #2421 Changed IIncludeContext to internal interface until someone needs it (@snakefoot)
- #2417 IsMono - Cache Type.GetType to avoid constant AppDomain.TypeResolve events (@snakefoot)
- #2420 Merged CallSite Test from PR1812 (@snakefoot)
- #2414 Revert breaking change of NestedDiagnosticsLogicalContext.Pop() (@304NotModified)
- #2415 NetStandard15 - Moved dependency System.Xml.XmlSerializer to NLog.Wcf (@snakefoot)
- #2413 NestedDiagnosticsLogicalContext - Protect against double dispose (@snakefoot)
- #2412 MessageTemplate - Render test of DateTime, TimeSpan, DateTimeOffset (@snakefoot)
- #2411 Create SequenceIdLayoutRenderer (@MikeFH)
- #2409 Revert "Avoid struct copy on readonly field access" (@snakefoot)
- #2403 NLog 4.5 beta 8 (@304NotModified)
- #2406 From [StringFormatMethod] to [MessageTemplateFormatMethod] (@304NotModified)
- #2402 Introduced NLog.Wcf and Nlog.WindowsIdentity for .NET standard (@snakefoot)
- #2404 Updated NLog viewer target defaults (@304NotModified)
- #2405 Added unit test for JsonLayout - serialize of objects (@304NotModified)
- #2407 NLogTraceListener - set DisableFlush true by default (@snakefoot)
- #2401 MailTarget is supported by NetStandard2.0 (but without SmtpSection) (@snakefoot)
- #2398 Log4JXml - Fixed initalization of XmlWriterSettings for IndentXml (@snakefoot)
- #2386 LogEventInfo.StackTrace moved into CallSiteInformation (@snakefoot)
- #2399 Avoid struct copy on readonly field access (@snakefoot)
- #2389 Fixed Sonar Lint code analysis warnings (@snakefoot)
- #2396 Update xunit and Microsoft.NET.Test.Sdk (@304NotModified)
- #2387 JsonConverter - Do not include static properties by default (@snakefoot)
- #2392 Removed unneeded default references like System.Drawing for NetFramework (@snakefoot)
- #2390 NLogViewerTarget - Enable override of the Logger-name (@snakefoot)
- #2385 FileTarget - ArchiveMutex only created when needed (@snakefoot)
- #2378 Target - Precalculate Layout should ignore sub-layouts for complex layouts (@snakefoot)
- #2388 PropertiesDictionary - Removed obsolete (private) method (@snakefoot)
- #2384 InternalLogger should work when NetCore loads NetFramework DLL (@snakefoot)
- #2377 NDLC - Perform low resolution scope timing (@snakefoot)
- #2372 Log4JXmlEventLayoutRenderer - Minor platform fixes for IncludeNdlc (@snakefoot)
- #2371 FileTarget - Enable archive mutex for Unix File Appender (if available) (@snakefoot)
- #2375 WebServiceTarget - Allow configuration of proxy address (@snakefoot)
- #2362 NLog - NETSTANDARD1_5 (Cleanup package references) (@snakefoot)
- #2361 Use expression-bodied members (@c0shea)
- #2359 WrapperLayoutRendererBase - Transform with access to LogEventInfo (@snakefoot)
- #2357 ExceptionLayoutRenderer - Support Serialize Format (@snakefoot)
- #2358 WrapperLayoutRendererBuilderBase - Transform with access to LogEventInfo (@snakefoot)
- #2314 Refactor InternalLogger class (@304NotModified, @ie-zero)
- #2356 NLog - MessageTemplates - Renamed config to parseMessageTemplates (@snakefoot)
- #2353 remove old package.config (@304NotModified)
- #2354 NLog - NETSTANDARD1_5 (revert breaking change) (@snakefoot)
- #2342 Remove redundant qualifiers (#2342) (@c0shea)
- #2349 NLog - NETSTANDARD1_5 (Fix uppercase with culture) (@snakefoot)
- #2341 NLog - NETSTANDARD1_5 (@snakefoot)
- #2346 Add messageTemplateParser to XSD (@304NotModified)
- #2348 NLog MessageTemplateParameter with CaptureType (@snakefoot)
- #2340 NLog - MessageTemplateParameters - Always parse when IsPositional (@304NotModified, @snakefoot)
- #2337 Use string interpolation (@c0shea)
- #2327 Naming: consistent private fields (@304NotModified)
- #2318 NLog 4.5 beta 4 (@304NotModified)
- #2326 NLog - ValueSerializer - Faster integer and enum (@snakefoot)
- #2328 fix xunit warning (@304NotModified)
- #2117 Added IIncludeContext, implemented missing properties, added includeNdlc, sync NDLC and NDC (@304NotModified)
- #2317 More explicit side effect (@304NotModified)
- #2290 Do not report wrapped targets as unused targets (#2290) (@thesmallbang)
- #2319 NLog - MessageTemplateParameter - IsReservedFormat (@snakefoot)
- #2316 LogManager.LogFactory public (@304NotModified)
- #2208 Added Structured events / Message Templates (@snakefoot)
- #2312 Improve stability of unstable test on Travis: BufferingTargetWrapperA… (@304NotModified)
- #2309 2017 copyright in T4 files (@304NotModified)
- #2292 ${callsite} added CleanNamesOfAsyncContinuations option (#2292) (@304NotModified)
- #2310 Upgrade xUnit to 2.3.0 RTM (@304NotModified)
- #2313 Removal of old package.config files (@304NotModified)
- #1872 FileTarget: more internal logging (@304NotModified)
- #1897 LogFactory - Fixed EventArgs for ConfigurationChanged (@snakefoot)
- #2301 Docs, rename and refactor of PropertiesDictionary/MessageTemplateParameters (@304NotModified)
- #2302 Copyright to 2017 (@304NotModified)
- #2262 LogEventInfo.MessageTemplate - Subset of LogEventInfo.Properties (@snakefoot)
- #2300 Fixed title (@304NotModified)
- #2298 Search also for lowercase nlog.config (@304NotModified)
- #2297 WhenRepeatedFilter - Log after timeout (@snakefoot)
- #2263 Support .NET Standard 2.0 and move to VS 2017 (@snakefoot)
Fixes
- #2600 Fix 'System.ReadOnlySpan`1[System.Char]' cannot be converted to type 'System.String' (@snakefoot)
Fixes
- #2229 Fix: ReconfigExistingLoggers sometimes throws an Exception (@jpdillingham)
Fixes
- #2164 JsonLayout - Don't mark ThreadAgnostic when IncludeMdc or IncludeMdlc is enabled (@snakefoot)
Features
- #2110 NdlcLayoutRenderer - Nested Diagnostics Logical Context (@snakefoot)
- #2114 EventlogTarget: Support for MaximumKilobytes (@304NotModified, @ajitpeter)
- #2109 JsonLayout - IncludeMdc and IncludeMdlc (@snakefoot)
Fixes
- #2138 ReloadConfigOnTimer - fix potential NullReferenceException (@snakefoot)
- #2113 BugFix:
<targets>
after<rules>
won't work (@304NotModified, @Moafak) - #2131 Fix : LogManager.ReconfigureExistingLoggers() could throw InvalidOperationException (@304NotModified, @jpdillingham)
Improvements
- #2137 NLogTraceListener - Reduce overhead by checking LogLevel (@snakefoot)
- #2112 LogReceiverWebServiceTarget - Ensure PrecalculateVolatileLayouts (@snakefoot)
- #2103 Improve Install of targets / crash Install on Databasetarget. (@M4ttsson)
- #2101 LogFactory.Shutdown - Add warning on target flush timeout (@snakefoot)
Features
- #2090 ${log4jxmlevent} - Added IncludeAllProperties option (@snakefoot)
- #2090 Log4JXmlEvent Layout - Added IncludeAllProperties, IncludeMdlc and IncludeMdc option (@snakefoot)
Fixes
- #2090 Log4JXmlEvent Layout - Fixed bug with empty nlog:properties (@snakefoot)
- #2093 Fixed bug to logging by day of week (@RussianDragon)
- #2095 Fix: include ignoreErrors attribute not working for non-existent file (@304NotModified, @ghills)
Features
- #2078 Include MDLC in log4j renderer (option) (@thoemmi)
Features
- #2063 JsonLayout - Added JsonAttribute property EscapeUnicode (@snakefoot)
Improvements
- #2075 StackTraceLayoutRenderer with Raw format should display source FileName (@snakefoot)
- #2067 ${EventProperties}, ${newline}, ${basedir} & ${tempdir} as ThreadAgnostic (performance improvement) (@snakefoot)
- #2061 MethodCallTarget - Fixed possible null-reference-exception on initialize (@snakefoot)
Features
- #2006 Added AsyncTaskTarget - Base class for using async methods (@snakefoot)
- #2051 Added LogMessageGenerator overloads for exceptions (#2051) (@c0shea)
- #2034 ${level} add format option (full, single char and ordinal) (#2034) (@c0shea)
- #2042 AutoFlushTargetWrapper - Added AsyncFlush property (@snakefoot)
Improvements
- #2048 Layout - Ensure StackTraceUsage works for all types of Layout (@snakefoot)
- #2041 Reduce memory allocations (AsyncContinuation exceptionHandler) & refactor (@snakefoot)
- #2040 WebServiceTarget - Avoid re-throwing exceptions in async completion method (@snakefoot)
Fixes
- #2010 LogFactory - Ensure to flush and close on shutdown - fixes broken logging (@snakefoot)
- #2017 WebServiceTarget - Fix boolean parameter conversion for Xml and Json (lowercase) (@snakefoot)
Improvements
- #2017 Merged the JSON serializer code into DefaultJsonSerializer (@snakefoot)
Features
- #2000 Add weekly archival option to FileTarget (@dougthor42)
- #2009 Load assembly event (@304NotModified)
- #1917 Call NLogPackageLoader.Preload (static) for NLog packages on load (@304NotModified)
Improvements
- #2007 Target.Close() - Extra logging to investigate shutdown order (@snakefoot)
- #2003 Update XSD for
<NLog>
options (@304NotModified) - #1977 update xsd template (internallogger) for 4.4.3 version (@AuthorProxy)
- #1956 Improve docs ThreadAgnosticAttribute (#1956) (@304NotModified)
- #1992 Fixed merge error of XML documentation for Target Write-methods (@snakefoot)
Fixes
- #1995 Proper apply default-target-parameters to nested targets in WrappedTargets (@nazim9214)
Fixes
- #1966 System.UriFormatException on load (Mono) (@JustArchi)
- #1960 EventLogTarget: Properly parse and set EventLog category (@marinsky)
Features
- #1799 FileTarget: performance improvement: 10-70% faster, less garbage collecting (3-4 times less) by reusing buffers (@snakefoot, @AndreGleichner)
- #1919 Func overloads for InternalLogger (@304NotModified)
- #1915 allow wildcard (*) in
<include>
(@304NotModified) - #1914 basedir: added option processDir=true (@304NotModified)
- #1906 Allow Injecting basedir (@304NotModified)
Improvements
- #1927 InternalLogger - Better support for multiple threads when using file (@snakefoot)
- #1871 Filetarget - Allocations optimization (#1871) (@nazim9214)
- #1931 FileTarget - Validate File CreationTimeUtc when non-Windows (@snakefoot)
- #1942 FileTarget - KeepFileOpen should watch for file deletion, but not every second (@snakefoot)
- #1876 FileTarget - Faster archive check by caching the static file-create-time (60-70% improvement) (#1876) (@snakefoot)
- #1878 FileTarget - KeepFileOpen should watch for file deletion (#1878) (@snakefoot)
- #1932 FileTarget - Faster rendering of filepath, when not ThreadAgnostic (@snakefoot)
- #1937 LogManager.Shutdown - Verify that active config exists (@snakefoot)
- #1926 RetryingWrapper - Allow closing target, even when busy retrying (@snakefoot)
- #1925 JsonLayout - Support Precalculate for async processing (@snakefoot)
- #1816 EventLogTarget - don't crash with invalid Category / EventId (@304NotModified)
- #1815 Better parsing for Layouts with int/bool type. (@304NotModified, @rymk)
- #1868 WebServiceTarget - FlushAsync - Avoid premature flush (#1868) (@snakefoot)
- #1899 LogManager.Shutdown - Use the official method for closing down (@snakefoot)
Fixes
- #1886 FileTarget - Archive should not fail when ArchiveFileName matches FileName (@snakefoot)
- #1893 FileTarget - MONO doesn't like using the native Win32 API (@snakefoot)
- #1883 LogFactory.Dispose - Should always close down created targets (@snakefoot)
Summary:
- Fixes for medium trust (@snakefoot, @304notmodified)
- Performance multiple improvements for flush events (@snakefoot)
- FileTarget: Improvements for archiving (@snakefoot)
- FileTarget - Reopen filehandle when file write fails (@snakefoot)
- ConsoleTarget: fix crash when console isn't available (@snakefoot)
- NetworkTarget - UdpNetworkSender should exercise the provided Close-callback (@snakefoot)
Detail:
- #1874 Fixes for medium trust (@snakefoot, @304notmodified)
- #1873 PartialTrustDomain - Handle SecurityException to allow startup and logging (#1873) (@snakefoot)
- #1859 FileTarget - MONO should also check SupportsSharableMutex (#1859) (@snakefoot)
- #1853 AsyncTargetWrapper - Flush should start immediately without waiting (#1853) (@snakefoot)
- #1858 FileTarget - Reopen filehandle when file write fails (#1858) (@snakefoot)
- #1867 FileTarget - Failing to delete old archive files, should not stop logging (@snakefoot)
- #1865 Compile MethodInfo into LateBoundMethod-delegate (ReflectedType is deprecated) (@snakefoot)
- #1850 ConsoleTarget - Apply Encoding on InitializeTarget, if Console available (#1850) (@snakefoot)
- #1862 SHFB config cleanup & simplify (@304NotModified)
- #1863 Minor cosmetic changes on FileTarget class (@ie-zero)
- #1861 Helper class ParameterUtils removed (@ie-zero)
- #1847 LogFactory.Dispose() fixed race condition with reloadtimer (#1847) (@snakefoot)
- #1849 NetworkTarget - UdpNetworkSender should exercise the provided Close-callback (@snakefoot)
- #1857 Fix immutability of LogLevel properties (@ie-zero)
- #1860 FileAppenderCache implements IDisposable (@ie-zero)
- #1848 Standarise implementation of events (@ie-zero)
- #1844 FileTarget - Mono2 runtime detection to skip using named archive-mutex (@snakefoot)
Features
- #1583 Don't stop logging when there is an invalid layoutrenderer in the layout. (@304NotModified)
- #1740 WebServiceTarget support for JSON & Injecting JSON serializer into NLog (#1740) (@tetrodoxin)
- #1754 JsonLayout: JsonLayout: add includeAllProperties & excludeProperties (@aireq)
- #1439 Allow comma separated values (List) for Layout Renderers in nlog.config (@304NotModified)
- #1782 Improvement on #1439: Support Generic (I)List and (I)Set for Target/Layout/Layout renderers properties in nlog.config (@304NotModified)
- #1769 Optionally keeping variables during configuration reload (@nazim9214)
- #1514 Add LimitingTargetWrapper (#1514) (@Jeinhaus)
- #1581 Registering Layout renderers with func (one line needed), easier registering layout/layoutrender/targets (@304NotModified)
- #1735 UrlHelper - Added standard support for UTF8 encoding, added support for RFC2396 & RFC3986 (#1735) (@snakefoot)
- #1768 ExceptionLayoutRenderer - Added support for AggregateException (@snakefoot)
- #1752 Layout processinfo with support for custom Format-string (@snakefoot)
- #1836 Callsite: add includeNamespace option (@304NotModified)
- #1817 Added condition to AutoFlushWrappper (@nazim9214)
Improvements
- #1732 Handle duplicate attributes (error or using first occurence) in nlog.config (@nazim9214)
- #1778 ConsoleTarget - DetectConsoleAvailable - Disabled by default (@snakefoot)
- #1585 More clear internallog when reading XML config (@304NotModified)
- #1784 ProcessInfoLayoutRenderer - Applied usage of LateBoundMethod (@snakefoot)
- #1771 FileTarget - Added extra archive check is needed, after closing stale file handles (@snakefoot)
- #1779 Improve performance of filters (2-3 x faster) (@snakefoot)
- #1780 PropertiesLayoutRenderer - small performance improvement (@snakefoot)
- #1776 Don't crash on an invalid (xml) app.config by default (@304NotModified)
- #1763 JsonLayout - Performance improvements (@snakefoot)
- #1755 General performance improvement (@snakefoot)
- #1756 WindowsMultiProcessFileAppender (@snakefoot, @AndreGleichner)
Improvements
- #1700 Improved concurrency when multiple Logger threads are writing to async Target (@snakefoot)
- #1750 Log payload for NLogViewerTarget/NetworkTarget to Internal Logger (@304NotModified)
- #1745 FilePathLayout - Reduce memory-allocation for cleanup of filename (@snakefoot)
- #1746 DateLayout - Reduce memory allocation when low time resolution (@snakefoot)
- #1719 Avoid (Internal)Logger-boxing and params-array-allocation on Exception (@snakefoot)
- #1683 FileTarget - Faster async processing of LogEvents for the same file (@snakefoot)
- #1730 Conditions: Try interpreting first as non-string value (@304NotModified)
- #1814 Improve [Obsolete] warnings - include the Nlog version when it became obsolete (#1814) (@ie-zero)
- #1809 FileTarget - Close stale file handles outside archive mutex lock (@snakefoot)
Fixes
- #1749 Try-catch for permission when autoloading - fixing Android permission issue (@304NotModified)
- #1751 ExceptionLayoutRenderer: prevent nullrefexception when exception is null (@304NotModified)
- #1706 Console Target Automatic Detect if console is available on Mono (@snakefoot)
Features
- #1680 Append to existing archive file (@304NotModified)
- #1669 AsyncTargetWrapper - Allow TimeToSleepBetweenBatches = 0 (@snakefoot)
- #1668 Console Target Automatic Detect if console is available (@snakefoot)
Improvements
- #1697 Archiving should never fail writing (@304NotModified)
- #1695 Performance: Counter/ProcessId/ThreadId-LayoutRenderer allocations less memory (@snakefoot)
- #1693 Performance (allocation) improvement in Aysnc handling (@snakefoot)
- #1694 FilePathLayout - CleanupInvalidFilePath - Happy path should not allocate (@snakefoot)
- #1675 unseal databasetarget and make BuildConnectionString protected (@304NotModified)
- #1690 Fix memory leak in AppDomainWrapper (@snakefoot)
- #1702 Performance: InternalLogger should only allocate params-array when needed (@snakefoot)
Fixes
- #1676 Fix FileTarget on Xamarin: Remove mutex usage for Xamarin 'cause of runtime exceptions (@304NotModified)
- #1591 Count operation on AsyncRequestQueue is not thread-safe (@snakefoot)
Features
- #1641 FileTarget: Add WriteFooterOnArchivingOnly parameter. (@bhaeussermann)
- #1628 Add ExceptionDataSeparator option for ${exception} (@FroggieFrog)
- #1626 cachekey option for cache layout wrapper (@304NotModified)
Improvements
- #1643 Pause logging when the race condition occurs in (Colored)Console Target (@304NotModified)
- #1632 Prevent possible crash when archiving in folder with non-archived files (@304NotModified)
Fixes
- #1646 FileTarget: Fix file archive race-condition. (@bhaeussermann)
- #1642 MDLC: fixing mutable dictionary issue (improvement) (@vlardn)
- #1635 Fix ${tempdir} and ${nlogdir} if both have dir and file. (@304NotModified)
Features
- #1619 NetworkTarget: Added option to specify EOL (@kevindaub)
Improvements
- #1596 Performance tweak in NLog routing (@304NotModified)
- #1593 FileTarget: large performance improvement - back to 1 million/sec (@304NotModified)
- #1621 FileTarget: writing to non-existing drive was slowing down NLog a lot (@304NotModified)
Fixes
- #1616 FileTarget: Don't throw an exception if a dir is missing when deleting old files on startup (@304NotModified)
Features
- #1469 Allow overwriting possible nlog configuration file paths (@304NotModified)
- #1578 Add support for name parameter on ${Assembly-version} (@304NotModified)
- #1580 Added option to not render empty literals on nested json objects (@johnkors)
Improvements
- #1558 Callsite layout renderer: improve string comparison test (performance) (@304NotModified)
- #1582 FileTarget: Performance improvement for CleanupInvalidFileNameChars (@304NotModified)
Fixes
- #1556 Bugfix: Use the culture when rendering the layout (@304NotModified)
Features
Fixes
- #1548 Bugfix: Can't update EventLog's Source property (@304NotModified, @Page-Not-Found)
- #1553 Bugfix: Throw configException when registering invalid extension assembly/type. (@304NotModified, @Jeinhaus)
- #1547 LogReceiverWebServiceTarget is leaking communication channels (@MartinTherriault)
Features
- #1471 Add else option to ${when} (@304NotModified)
- #1481 get items for diagnostic contexts (DiagnosticsContextes, GetNames() method) (@tiljanssen)
Fixes
- #1504 Fix ${callsite} with async method with return value (@PELNZ)
Features
- #1423 Injection of zip-compressor for fileTarget (@AndreGleichner)
- #1434 Added constructors with name argument to the target types (@304NotModified, @flyingcroissant)
- #1400 Added WrapLineLayoutRendererWrapper (@mathieubrun)
Improvements
- #1456 FileTarget: Improvements in FileTarget archive cleanup. (@bhaeussermann)
- #1417 FileTarget prevent stackoverflow after setting FileName property on init (@304NotModified)
Fixes
- #1454 Fix LoggingRule.ToString (@304NotModified)
- #1453 Fix potential nullref exception in LogManager.Shutdown() (@304NotModified)
- #1450 Fix duplicate Target after config Initialize (@304NotModified)
- #1446 FileTarget: create dir if CreateDirs=true and replacing file content (@304NotModified)
- #1432 Check if directory NLog.dll is detected in actually exists (@gregmac)
Other
- #1440 Added extra unit tests for context classes (@304NotModified)
- #1411 MailTarget: fix "From" errors (bug introduced in NLog 4.3.2) (@304NotModified)
- #1404 FileTarget cleanup: move to background thread. (@304NotModified)
- #1403 Fix filetarget: Thread was being aborted (#2) (@304NotModified)
- #1402 Getting the 'From' when UseSystemNetMailSettings is true (@MoaidHathot)
- #1401 Allow target configuration to support a hierachy of XML nodes (#1401) (@304NotModified)
- #2 Fix filetarget: Thread was being aborted (#2) (@304NotModified)
- #1394 Make test methods public (#1394) (@luigiberrettini)
- #1393 Remove test dependency on locale (@luigiberrettini)
- #1386 Fix "allLayouts is null" exception (@304NotModified)
- #1387 Fix filetarget: Thread was being aborted (@304NotModified)
- #1383 Fix configuration usage in
${var}
renderer (@bhaeussermann, @304NotModified)
- #1348 Fix nullref + fix relative path for file archive (@304NotModified)
- #1352 Fix for writing log file to root path (@304NotModified)
- #1357 autoload NLog.config in assets folder (Xamarin Android) (@304NotModified)
- #1358 no-recusive logging in internallogger. (@304NotModified)
- #1364 Fix stacktraceusage with more than 1 rule (@304NotModified)
- #1335 Fix all build warnings (@304NotModified)
- #1336 Throw NLogConfigurationException if TimeToSleepBetweenBatches
<= 0
(@vincechan) - #1333 Fix ${callsite} when loggerType can't be found due to inlining (@304NotModified)
- #1329 Update SHFB (@304NotModified)
- #1323 Add TimeStamp options to XML, Appsetting and environment var (@304NotModified)
- #1286 Easier api: AddRule methods, fix AllTargets crash, fix IsLevelEnabled(off) crash, refactor internal (@304NotModified)
- #1317 don't require ProviderName attribute when using
<connectionStrings>
(app.config etc) (@304NotModified) - #1316 Fix scan for stacktrace usage (bug never released) (@304NotModified)
- #1299 Also use logFactory for ThrowConfigExceptions (@304NotModified)
- #1309 Added nested json from xml unit test (@pysco68, @304NotModified)
- #1310 Fix threadsafe issue of GetLogger / GetCurrentClassLogger (+improve performance) (@304NotModified)
- #1313 Added the NLog.Owin.Logging badges to README packages list (@pysco68)
- #1222 internalLogger, write to System.Diagnostics.Debug / System.Diagnostics.Trace #1217 (@bryjamus)
- #1303 Fix threadsafe issue of ScanProperties3 (@304NotModified)
- #1273 Added the ability to allow virtual paths for SMTP pickup directory (@michaeljbaird)
- #1298 NullReferenceException fix for VariableLayoutRenderer (@neris)
- #1295 Fix Callsite render bug introducted in 4.3 beta (@304NotModified)
- #1285 Fix: {$processtime} has incorrect milliseconds formatting (@304NotModified)
- #1296 CachedLayoutRender: allow ClearCache as (ambient) property (@304NotModified)
- #1294 Fix thread-safe issue ScanProperties (@304NotModified)
- #1281 FileTargetTests: Fix runtime overflow-of-minute issue in DateArchive_SkipPeriod. (@bhaeussermann)
- #1274 FileTarget: Fix archive does not work when date in file name. (@bhaeussermann)
- #1275 Less logging for unstable unit tests (and also probably too much) (@304NotModified)
- #1270 Added testcase (NestedJsonAttrTest) (@304NotModified)
- #1279 Fix tests to ensure all AsyncTargetWrapper's are closed. (@bhaeussermann)
- #1238 Control throwing of NLogConfigurationExceptions (LogManager.ThrowConfigExceptions) (@304NotModified)
- #1265 More thread-safe method (@304NotModified)
- #1260 try read nlog.config in ios/android (@304NotModified)
- #1253 Added docs for UrlEncode (@304NotModified)
- #1252 improve InternalLoggerTests unit test (@304NotModified)
- #1259 Internallogger improvements (@304NotModified)
- #1258 fixed typo in NLog.config (@icnocop)
- #1256 Badges Shields.io ->` Badge.fury.io (@304NotModified)
- #1225 XmlLoggingConfiguration: Set config values on correct LogFactory object (@bhaeussermann, @304NotModified)
- #1 Fix ambiguity in
cref
in comments. (@304NotModified) - #1254 Remove SubversionScc / AnkhSVN info from solutions (@304NotModified)
- #1247 Init version issue template (@304NotModified)
- #1245 Add Logger.Swallow(Task task) (@breyed)
- #1246 added badges UWP / web.ASPNET5 (@304NotModified)
- #1227 LogFactory: Add generic-type versions of GetLogger() and GetCurrentClassLogger() (@bhaeussermann)
- #1242 Improve unit test (@304NotModified)
- #1213 Log more to InternalLogger (@304NotModified)
- #1240 Added StringHelpers + StringHelpers.IsNullOrWhiteSpace (@304NotModified)
- #1239 Fix unstable MDLC Unit test + MDLC free dataslot (@304NotModified, @MikeFH)
- #1236 Bugfix: Internallogger creates folder, even when turned off. (@eduardorascon)
- #1232 Fix HttpGet protocol for WebService (@MikeFH)
- #1223 Fix deadlock on Factory (@304NotModified)
- #1220 FileTarget: Add internal logging for archive date. (@bhaeussermann)
- #1214 Better unit test cleanup between tests + fix threadsafe issue ScanProperties (@304NotModified)
- #1212 Support reading nlog.config from Android assets folder (@304NotModified)
- #1215 FileTarget: Archiving not working properly with AsyncWrapper (@bhaeussermann)
- #1216 Added more docs to InternalLogger (@304NotModified)
- #1207 FileTarget: Fix Footer for archiving. (@bhaeussermann)
- #1210 Added extra unit test (@304NotModified)
- #1191 Throw exception when base.InitializeTarget() is not called + inline GetAllLayouts() (@304NotModified)
- #1208 FileTargetTests: Supplemented ReplaceFileContentsOnEachWriteTest() to test with and without header and footer (@bhaeussermann)
- #1197 Improve XML Docs (@304NotModified)
- #1200 Added unit test for K datetime format (@304NotModified)
- #1143 Consistent Exception handling v3 (@304NotModified)
- #1195 FileTarget: added ReplaceFileContentsOnEachWriteTest (@304NotModified)
- #925 RegistryLayoutRenderer: Support for layouts, RegistryView (32, 64 bit) and all root key names (HKCU/HKLM etc) (@304NotModified, @Niklas-Peter)
- #1157 FIx (xml-) config classes for thread-safe issues (@304NotModified)
- #1183 FileTarget: Fix compress archive file not working when using concurrentWrites="True" and keepFileOpen="True" (@bhaeussermann)
- #1187 MethodCallTarget: allow optional parameters, no nullref exceptions. +unit tests (@304NotModified)
- #1171 Coloredconsole not compiled regex by default (@304NotModified)
- #1173 Unit test added for Variable node (@UgurAldanmaz)
- #1138 Callsite fix for async methods (@304NotModified)
- #1126 Fix and test archiving when writing to same file from different processes (@bhaeussermann)
- #1170 LogBuilder: add StringFormatMethod Annotations (@304NotModified)
- #1127 Max message length option for Eventlog target (@UgurAldanmaz)
- #1149 Fix crash during delete of old archives & archive delete optimization (@brutaldev)
- #1154 Fix nuget for Xamarin.iOs (@304NotModified)
- #1159 README-developers.md: Added pull request checklist. (@bhaeussermann)
- #1131 Reducing memory allocations in ShortDateLayoutRenderer by caching the formatted date. (@epignosisx)
- #1141 Remove code dup of InternalLogger (T4) (@304NotModified)
- #1144 add doc (@304NotModified)
- #1142 PropertyHelper: rename to readable names (@304NotModified)
- #1139 Reduce Memory Allocations in LongDateLayoutRenderer (@epignosisx)
- #1112 ColoredConsoleTarget performance improvements. (@bhaeussermann)
- #1135 FileTargetTests: Fix DateArchive_SkipPeriod test. (@bhaeussermann)
- #1119 FileTarget: Use last-write-time for archive file name (@bhaeussermann)
- #1089 Support For Relative Paths in the File Targets (@Page-Not-Found)
- #1068 Overhaul ExceptionLayoutRenderer (@Page-Not-Found)
- #1125 FileTarget: Fix continuous archiving bug. (@bhaeussermann)
- #1113 Bugfix: EventLogTarget OnOverflow=Split writes always to Info level (@UgurAldanmaz)
- #1116 Config: Implemented inheritance policy for autoReload in included config files (@bhaeussermann)
- #1100 FileTarget: Fix archive based on time does not always archive. (@bhaeussermann)
- #1110 Fix: Deadlock in NetworkTarget (@kt1996)
- #1109 FileTarget: Fix archiving for ArchiveFileName without a pattern. (@bhaeussermann)
- #1104 Merge from 4.2.3 (Improve performance of FileTarget, performance GDC) (@304NotModified, @epignosisx)
- #1095 Fix find calling method on stack trace (@304NotModified)
- #1099 Added extra callsite unit tests (@304NotModified)
- #1084 Log unused targets to internal logger (@UgurAldanmaz)
- #1083 Changed the heading in Readme file (@Page-Not-Found)
- #1081 Update README.md (@UgurAldanmaz)
- #4 Update from base repository (@304NotModified, @bhaeussermann, @ie-zero, @epignosisx, @stefandevo, @nathan-schubkegel)
- #1066 Add AllLevels and AllLoggingLevels to LogLevel.cs. (@rellis-of-rhindleton)
- #1062 Fix Xamarin Build in PR (and don't fail in fork) (@304NotModified)
- #1061 skip xamarin-dependent steps in appveyor PR builds (@nathan-schubkegel)
- #1040 Xamarin (iOS, Android) and Windows Phone 8 (@304NotModified, @stefandevo)
- #1041 EventLogTarget: Add overflow action for too large messages (@epignosisx)
- #1054 LogReceiverWebServiceTarget.CreateLogReceiver() should be virtual (@304NotModified)
- #1048 Var layout renderer improvements (@304NotModified)
- #1043 Moved sourcecode tests to separate tool (@304NotModified)
- #1031 NetworkTarget: linkedlist + configure max connections (@304NotModified)
- #1037 Added FilterResult tests (@304NotModified)
- #1036 Logbuilder tests + fix passing Off (@304NotModified)
- #1035 Added tests for Conditional logger (@304NotModified)
- #1033 Databasetarget: restored 'UseTransactions' and print warning if used (@304NotModified)
- #1032 Filetarget: Added tests for the 2 kind of slashes (@304NotModified)
- #1027 Reduce memory allocations in Logger.Log when using CsvLayout and JsonLayout (@epignosisx)
- #1020 Reduce memory allocations in Logger.Log by avoiding GetEnumerator. (@epignosisx)
- #1019 Issue #987: Filetarget: Max archives settings sometimes removes to many files (@bhaeussermann)
- #1021 Fix #2 ObjectGraphScanner.ScanProperties: Collection was modified (@304NotModified)
- #994 Introduce FileAppenderCache class (@ie-zero)
- #968 Fix: LogFactoryTests remove Windows specific values (@ie-zero)
- #999 Unit Tests added to LogFactory class (@ie-zero)
- #1000 Fix methods' indentation in LogManager class (@ie-zero)
- #1001 Dump() now uses InternalLogger.Debug() consistent (@ie-zero)
- #996 ColoredConsoleTarget: Fixed broken WholeWords option of highlight-word. (@bhaeussermann)
- #995 ArchiveFileCompression: auto add
.zip
to compressed filename when archiveName isn't specified (@bhaeussermann) - #993 changed to nuget appveyor account (@304NotModified)
- #992 added logo (@304NotModified)
- #988 Unit test for proving max-archive bug of #987 (@304NotModified)
- #991 Document FileTarget inner properties/methods (@ie-zero)
- #986 Added more unit tests for max archive with dates in files. (@304NotModified)
- #984 Fixes #941. Add annotations for custom string formatting methods (@bhaeussermann)
- #985 Fix: file archiving DateAndSequence & FileArchivePeriod.Day won't work always (wrong switching day detected) (@304NotModified)
- #982 Document FileTarget inner properties/methods (@ie-zero)
- #983 Remove obsolete code from FileTarget (@ie-zero)
- #981 More tests inner parse + docs (@304NotModified)
- #952 Fixes #931. FileTarget: Log info concerning archiving to internal logger (@bhaeussermann)
- #976 Fix SL4/SL5 warnings by adding/editing XML docs (@304NotModified)
- #973 More fluent unit tests (@304NotModified)
- #975 Fix parse of inner layout (@304NotModified)
- #3 Update (@304NotModified, @UgurAldanmaz, @vbfox, @kevindaub, @Niklas-Peter, @bhaeussermann, @breyed, @wrangellboy)
- #974 Small Codecoverage improvement (@304NotModified)
- #966 Fix: Exception is thrown when archiving is enabled (@304NotModified)
- #939 Bugfix: useSystemNetMailSettings=false still uses .config settings + feature: PickupDirectoryLocation from nlog.config (@dnlgmzddr)
- #972 Added Codecov.io (@304NotModified)
- #971 Removed unneeded System.Drawing references (@304NotModified)
- #967 Getcurrentclasslogger documentation / error messages improvements (@304NotModified)
- #963 FIx: Collection was modified - GetTargetsByLevelForLogger (@304NotModified)
- #954 Issue 941: Add annotations for customer string formatting messages (@wrangellboy)
- #940 Documented default fallback value and RanToCompletion (@breyed)
- #947 Fixes #319. Added IncrementValue property. (@bhaeussermann)
- #945 Added Travis Badge (@304NotModified)
- #944 Skipped some unit tests for Mono (@304NotModified)
- #938 Issue #913: Log NLog version to internal log. (@bhaeussermann)
- #937 Added more registry unit tests (@304NotModified)
- #933 Issue #612: Cached Layout Renderer is reevaluated when LoggingConfiguration is changed (@bhaeussermann)
- #2 Support object vals for mdlc (@UgurAldanmaz)
- #927 Comments change in LogFactory (@Niklas-Peter)
- #926 Assure automatic re-configuration after configuration change (@Niklas-Peter)
- #920 Added AssemblyFileVersion as property to build script (@304NotModified)
- #912 added fluent .properties, fix/add fluent unit tests (@304NotModified)
- #909 added ThreadAgnostic on AllEventPropertiesLayoutRenderer (@304NotModified)
- #910 Fixes "Collection was modified" crash with ReconfigExistingLoggers (@304NotModified)
- #906 added some extra tests (@304NotModified)
- #900 fix generated code after change .tt (#894) (@304NotModified)
- #901 Safe autoload (@304NotModified)
- #894 fix generated code after change .tt (#894) (@304NotModified)
- #896 Support object vals for mdlc (@UgurAldanmaz)
- #898 Resolves Internal Logging With Just Filename (@kevindaub)
- #1 Update from base repository (@304NotModified, @UgurAldanmaz, @vbfox)
- #892 Remove unused windows.forms stuff (@304NotModified)
- #894 Obsolete attribute doesn't specify the correct replacement (@vbfox)
- #884 Changes at MDLC to support .Net 4.0 and .Net 4.5 (@UgurAldanmaz)
- #881 Change GitHub for Windows to GitHub Desktop (@campbeb)
- #874 Wcf receiver client (@kevindaub, @304NotModified)
- #871 ${event-properties} - Added culture and format properties (@304NotModified)
- #861 LogReceiverServiceTests: Added one-way unit test (retry) (@304NotModified)
- #866 FileTarget.DeleteOldDateArchive minor fix (@remye06)
- #872 Updated appveyor.yml (unit test CMD) (@304NotModified)
- #743 Support object values for GDC, MDC and NDC contexts. (@williamb1024)
- #773 Fixed DateAndSequence archive numbering mode + bugfix no max archives (@remye06)
- #858 Fixed travis build with unit tests (@kevindaub, @304NotModified)
- #856 Revert "LogReceiverServiceTests: Added one-way unit test" (@304NotModified)
- #854 LogReceiverServiceTests: Added one-way unit test (@304NotModified)
- #855 Update appveyor.yml (@304NotModified)
- #853 Update appveyor config (@304NotModified)
- #850 Archive files delete right order (@304NotModified)
- #848 Refactor file archive unittest (@304NotModified)
- #820 fix unloaded appdomain with xml auto reload (@304NotModified)
- #789 added config option for breaking change (Exceptions logging) in NLog 4.0 [WIP] (@304NotModified)
- #833 Move MDLC and Traceactivity from Contrib + handle missing dir in filewachter (@304NotModified, @kichristensen)
- #818 Updated InternalLogger to Create Directories If Needed (@kevindaub)
- #844 Fix ThreadAgnosticAttributeTest unit test (@304NotModified)
- #834 Fix SL5 (@304NotModified)
- #827 added test: Combine archive every day and archive above size (@304NotModified)
- #811 Easier API (@304NotModified)
- #816 Overhaul NLog variables (@304NotModified)
- #788 Fix: exception is not correctly logged when calling without message [WIP] (@304NotModified)
- #814 Bugfix:
<extensions>
needs to be the first element in the config (@304NotModified) - #813 Added unit test: reload after replace (@304NotModified)
- #812 Unit tests: added some extra time for completion (@304NotModified)
- #800 Replace NewLines Layout Renderer Wrapper (@flower189)
- #805 Fix issue #804: Logging to same file from multiple processes misses messages (@bhaeussermann)
- #797 added switch to JsonLayout to suppress the extra spaces (@tmusico)
- #809 Improve docs
ICreateFileParameters
(@304NotModified) - #808 Added logrecievertest with ServiceHost (@304NotModified)
- #780 Call site line number layout renderer - fix (@304NotModified)
- #776 added SwallowAsync(Task) (@breyed)
- #774 FIxed ArchiveOldFileOnStartup with layout renderer used in ArchiveFileName (@remye06)
- #750 Optional encoding for JsonAttribute (@grbinho)
- #742 Fix monodevelop build. (@txdv)
- #781 All events layout renderer: added
IncludeCallerInformation
option. (@304NotModified) - #794 Support for auto loading UNC paths (@mikeobrien)
- #786 added unit test for forwardscomp (@304NotModified)
- #762 Improved config example (@304NotModified)
- #760 Autoload fix for ASP.net + better autoloading logging (@304NotModified)
- #763 Fixed reference for Siverlight (broken and fixed in 4.0.1) (@304NotModified)
- #759 Check if directory watched exists (@kichristensen)
- #755 Fix unneeded breaking change with requirement of MailTarget.SmtpServer (@304NotModified)
- #758 Correct obsolete text (@kichristensen)
- #754 Optimized references (@304NotModified)
- #753 Fix autoflush (@304NotModified)
- #744 Alternate fix for #730 (@williamb1024)
- #751 Fix incorrect loglevel obsolete message (@SimonCropp)
- #747 Correct race condition in AsyncTargetWrapperExceptionTest (@williamb1024)
- #746 Fix for #736 (@akamyshanov)
- #736 fixes issue (#736) when the NLog assembly is loaded from memory (@akamyshanov)
- #715 Message queue target test check if queue exists (@304NotModified)
- #583 .gitattributes specifies which files should be considered as text (@ilya-g)
- #717 Improved description and warning. (@304NotModified)
- #718 GOTO considered harmful (@304NotModified)
- #689 Make alignment stay consistent when fixed-length truncation occurs.(AlignmentOnTruncation property) (@logiclrd)
- #716 Flush always explicit (@304NotModified)
- #714 added some docs for the ConditionalXXX methods (@304NotModified)
- #712 nuspec: added author + added NLog tag (@304NotModified)
- #707 Introduce auto flush behaviour again (@kichristensen)
- #705 EventLogTarget.Source layoutable & code improvements to EventLogTarget (@304NotModified)
- #704 Thread safe: GetCurrentClassLogger test + fix (@304NotModified)
- #703 Added 'lost messages' Webservice unittest (@304NotModified)
- #692 added Encoding property for consoleTarget + ColorConsoleTarget (@304NotModified)
- #699 Added Webservice tests with REST api. (@304NotModified)
- #654 Added unit test to validate the [DefaultValue] attribute values + update DefaultAttributes (@304NotModified)
- #671 Bugfix: Broken xml stops logging (@304NotModified)
- #697 V3.2.1 manual merge (@304NotModified, @kichristensen)
- #698 Fixed where log files couldn't use the same name as archive file (@BrandonLegault)
- #691 Right way to log exceptions (@304NotModified)
- #670 added unit test: string with variable get expanded (@304NotModified)
- #547 Fix use of single archive in file target (@kichristensen)
- #674 Add a Gitter chat badge to README.md (@gitter-badger)
- #629 BOM option/fix for WebserviceTarget + code improvements (@304NotModified)
- #650 fix default value of Commandtype (@304NotModified)
- #651 init
TimeStamp
andSequenceID
in all ctors (@304NotModified) - #657 Fixed quite a few typos (@sean-gilliam)
- #600 Looks good (@kichristensen)
- #645 Stacktrace broken fix 321 (@304NotModified)
- #606 LineEndingMode type in xml configuration and xsd schema (@ilya-g)
- #608 Archiving system runs when new log file is created #390 (@awardle)
- #584 Stacktrace broken fix (@304NotModified, @ilya-g)
- #601 Mailtarget allow empty 'To' and various code improvements (@304NotModified)
- #618 Handle .tt in .csproj better (@304NotModified)
- #619 Improved badges (@304NotModified)
- #616 Added DEBUG-Conditional trace and debug methods #2 (@304NotModified)
- #10 Manual merge with master (@304NotModified, @kichristensen, @YuLad, @ilya-g, @MartinTherriault, @aelij)
- #602 Logger overloads generated by T4 (@304NotModified)
- #613 Treat warnings as errors (@304NotModified)
- #9 304 not modified stacktrace broken fix (@304NotModified, @kichristensen, @YuLad, @ilya-g, @MartinTherriault, @aelij)
- #610 Fixed NLog#609 (@dodexahedron)
- #8 Refactoring + comments (@ilya-g)
- #4 HiddenAssemblies list is treated like immutable. (@ilya-g)
- #6 Sync back (@304NotModified, @kichristensen, @YuLad, @ilya-g, @MartinTherriault, @aelij)
- #512 FileTarget uses time from the current TimeSource for date-based archiving (@ilya-g)
- #560 Archive file zip compression (@aelij)
- #576 Instance property XmlLoggingConfiguration.DefaultCultureInfo should not change global state (@ilya-g)
- #585 improved Cyclomatic complexity of ConditionTokenizer (@304NotModified)
- #598 Added nullref checks for MailTarget.To (@304NotModified)
- #582 Fix NLog.proj build properties (@ilya-g)
- #5 Extend stack trace frame skip condition to types derived from the loggerType (@ilya-g)
- #575 Event Log Target unit tests improvement (@ilya-g)
- #556 Enable the counter sequence parameter to take layouts (@304NotModified)
- #559 Eventlog audit events (@304NotModified)
- #565 Set the service contract for LogReceiverTarget as one way (@MartinTherriault)
- #563 Added info sync projects + multiple .Net versions (@304NotModified)
- #542 Delete stuff moved to NLog.Web (@kichristensen)
- #543 Auto load extensions to allow easier integration with extensions (@kichristensen)
- #555 SMTP Closing connections fix (@304NotModified)
- #3 Sync back (@kichristensen, @304NotModified, @YuLad, @ilya-g)
- #544 Escape closing bracket in AppDomainLayoutRenderer test (@kichristensen)
- #546 Update nuget packages project url (@kichristensen)
- #545 Merge exception tests (@kichristensen)
- #540 Added CONTRIBUTING.md and schields (@304NotModified)
- #2 sync back (@kichristensen, @304NotModified, @YuLad, @ilya-g)
- #535 App domain layout renderer (@304NotModified)
- #519 Fluent API available for ILogger interface (@ilya-g)
- #523 Fix for issue #507: NLog optional or empty mail recipient (@YuLad)
- #497 Remove Windows Forms targets (@kichristensen)
- #530 Added Stacktrace layout renderer SkipFrames (@304NotModified)
- #490 AllEventProperties Layout Renderer (@vladikk)
- #517 Fluent API uses the same time source for timestamping as the Logger. (@ilya-g)
- #503 Add missing tags to Nuget packages (@kichristensen)
- #496 Fix monodevelop build (@dmitry-shechtman)
- #489 Add .editorconfig (@damageboy)
- #491 LogFactory Class Refactored (@ie-zero)
- #422 Run logging code outside of transaction (@Giorgi)
- #474 [Fix] ArchiveFileOnStartTest was failing (@ie-zero)
- #479 LogManager class refactored (@ie-zero)
- #478 Get[*]Logger() return Logger instead of ILogger (@ie-zero)
- #481 JsonLayout (@vladikk)
- #473 LineEndingMode Changed to Immutable Class (@ie-zero)
- #469 Corrects a copy-pasted code comment. (@JoshuaRogers)
- #467 LoggingRule.Final only suppresses matching levels. (@ilya-g)
- #465 Fix #283: throwExceptions ="false" but Is still an error (@YuLad)
- #464 Added 'enabled' attribute to the logging rule element. (@ilya-g)
- #463 Pluggable time sources support in NLog.xsd generator utility (@ilya-g)
- #460 Add exception to NLogEvent (@kichristensen)
- #457 Unobsolete XXXExceptions methods (@kichristensen)
- #449 Added new archive numbering mode (@1and1-webhosting-infrastructure)
- #450 Added support for hidden/blacklisted assemblies (@1and1-webhosting-infrastructure)
- #454 DateRenderer now includes milliseconds (@ilivewithian)
- #448 Added unit test to identify work around when using colons within when layout renderers (@reedyrm)
- #447 Change GetCandidateFileNames() to also yield appname.exe.nlog when confi... (@jltrem)
- #443 Implement Flush in LogReceiverWebServiceTarget (@kichristensen)
- #430 Make ExceptionLayoutRenderer more extensible (@SurajGupta)
- #442 BUG FIX: Modification to LogEventInfo.Properties While Iterating (@tsconn23)
- #439 Fix for UDP broadcast (@dmitriyett)
- #415 Fixed issue (#414) with AutoFlush on FileTarget. (@richol)
- #409 Fix loss of exception info when reading Exception.Message property throw... (@wilbit)
- #407 Added some missing [StringFormatMethod]s (@roji)
- #405 Close channel (@kichristensen)
- #404 Correctly delete first line i RichTextBox (@kichristensen)
- #402 Add property to stop scanning properties (@kichristensen)
- #401 Pass correct parameters into ConfigurationReloaded (@kichristensen)
- #397 Improve test run time (@kichristensen)
- #398 Remove obsolete attribute from ErrorException (@kichristensen)
- #395 Speed up network target tests (@kichristensen)
- #394 Always return exit code 0 from test scripts (@kichristensen)
- #393 Avoid uneccassary reflection (@kichristensen)
- #392 Remove EnumerableHelpers (@kichristensen)
- #369 Add of archiveOldFileOnStartup parameter in FileTarget (@cvanbergen)
- #377 Apply small performance patch (@pgatilov)
- #382 contribute fluent log builder (@pwelter34)
- #371 Use merging of event properties in async target wrapper to fix empty collection issue (@tuukkapuranen)
- #357 Extended ReplaceLayoutRendererWrapper and LayoutParser to support more advanced Regex replacements and more escape codes (@DannyVarod)
- #359 Fix #71 : Removing invalid filename characters from created file (@cvanbergen)
- #366 Fix for #365: Behaviour when logging null arguments (@cvanbergen)
- #372 Fix #370: EventLogTarget source and log name case insensitive comparison (@cvanbergen)
- #358 Made EndpointAddress virtual (@MikeChristensen)
- #353 Configuration to disable expensive flushing in NLogTraceListener (@robertvazan)
- #351 Obsolete added to LogException() method in Logger class. (@ie-zero)
- #352 Remove public constructors from LogLevel (@ie-zero)
- #349 Changed all ReSharper annotations to internal (issue 292) (@MichaelLogutov)
- #346 Fix: #333 Delete archived files in correct order (@cvanbergen)
- #347 Fixed #281: Don't create empty batches when event list is empty (@robertvazan)
- #246 Additional Layout Renderer "Assembly-Name" (@Slowpython)
- #344 Replacement for [LogLevel]Exception methods (@ie-zero)
- #337 Fixes an exception that occurs on startup in apps using NLog. AFAIK shou... (@activescott)
- #338 Fix: File target doesn't duplicate header in archived files #245 (@cvanbergen)
- #341 SpecialFolderLayoutRenderer honor file and dir (@arjoe)
- #345 Default value added in EnviromentLayoutRender (@ie-zero)
- #335 Fix/callsite incorrect (@JvanderStad)
- #334 Fixes empty "properties" collection. (@erwinwolff)
- #336 Fix for invalid XML characters in Log4JXmlEventLayoutRenderer (@JvanderStad)
- #329 ExceptionLayoutRenderer extension (@tjandras)
- #323 Update DatabaseTarget.cs (@GunsAkimbo)
- #315 Dispose of dequeued SocketAsyncEventArgs (@gcschorer)
- #300 Avoid NullReferenceException when environment variable not set. (@bkryl)
- #305 Redirects Logger.Log(a, b, ex) to Logger.LogException(a, b, ex) (@arangas)
- #321 Avoid NullArgumentException when running in a Unity3D application (@mattyway)
- #285 Changed modifier of ProcessLogEventInfo (@cincuranet)
- #270 Integrate JetBrains Annotations (@damageboy)
- #257 Fixed SL5 compilation error (@emazv72)
- #241 Date Based File Archiving (@mkaltner)
- #239 Add layout renderer for retrieving values from AppSettings. (@mpareja)
- #227 Pluggable time sources (@robertvazan)
- #226 Shared Mutex Improvement (@cjberg)
- #216 Optional ConditionMethod arguments, ignoreCase argument for standard condition methods, EventLogTarget enhancements (@tg73)
- #219 Avoid Win32-specific file functions in Mono where parts not implemented. (@KeithLRobertson)
- #215 Revert "Fix writing NLog properties in Log4JXmlEvent" (@kichristensen)
- #206 Correctly use comments in NLog.Config package (@kichristensen)
- #197 Better request queue logging (@kichristensen)
- #192 Allow Form Control Target to specify append direction (@simongh)
- #182 Fix locks around layoutCache (@brutaldev)
- #178 Anonymous delegate class and method name cleanup (@aalex675)
- #168 Deadlock in NLog library using Control-Target (WinForms) (@falstaff84)
- #176 Fix for #175 NLogTraceListener not using LogFactory (@HakanL)
- #163 #110 Exceptions swallowed in custom target (@johnrey1)
- #12 AppDomain testability (@kichristensen)
- #11 Updated code to not log exception double times (@ParthDesai)
- #10 Improved Fix Code for issue 6575 (@ParthDesai)
- #7 Fixed Issue in Code For Invalid XML (@ParthDesai)
- #6 Fix For Issue #7031 (@ParthDesai)
- #5 Codeplex BUG 6227 - LogManager.Flush throws... (@kichristensen)
- #4 Adding a test for pull request #1 which fixes bug 6370 from Codeplex (@sebfischer83)
- #3 TraceTarget no longer blocks on error messages. Fixes Codeplex bug 2599 (@kichristensen)
- #1 Codeplex Bug 6370 (@sebfischer83)