Skip to content

Commit b14c4bc

Browse files
authored
Splat.NLog - Reduce allocation when creating new NLogLogger (#1258)
* Splat.NLog - Reduce allocation when creating new NLogLogger * Use generic Enum.GetValues available from NET5 and newer
1 parent ddef2ed commit b14c4bc

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/Splat.NLog/NLogLogger.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ namespace Splat.NLog;
1414
[DebuggerDisplay("Name={_inner.Name} Level={Level}")]
1515
public sealed class NLogLogger : IFullLogger, IDisposable
1616
{
17+
#if NET5_0_OR_GREATER
18+
private static readonly LogLevel[] _allLogLevels = Enum.GetValues<LogLevel>();
19+
#else
20+
private static readonly LogLevel[] _allLogLevels = Enum.GetValues(typeof(LogLevel)).Cast<LogLevel>().ToArray();
21+
#endif
1722
private readonly global::NLog.Logger _inner;
1823

1924
/// <summary>
@@ -564,7 +569,7 @@ public LogLevel Level
564569
/// </remarks>
565570
private void SetLogLevel()
566571
{
567-
foreach (LogLevel logLevel in Enum.GetValues(typeof(LogLevel)))
572+
foreach (LogLevel logLevel in _allLogLevels)
568573
{
569574
if (_inner.IsEnabled(ResolveLogLevel(logLevel)))
570575
{

0 commit comments

Comments
 (0)