使用log4net时遇到问题。以下应用程序在Windows 7和Windows 10上运行。存在明显的性能差异。在多台Windows 10计算机上尝试了此方法,结果相似。
Log4net版本: 2.0.8.0
Windows 7: 6秒
Windows 10 :2分17秒
Windows 10信息::版本1809。操作系统内部版本:17763.253(此内部版本已被修补:KB4058258 (OS Build 16299.214))。
.NET版本: 4.6.1
test.log4net.config
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:\temp\myLog.log" />
<appendToFile value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
Program.cs
using log4net;
using log4net.Config;
using System;
using System.Diagnostics;
using System.IO;
namespace ConsoleAppPerfTest
{
public class Program
{
static void Main(string[] args)
{
XmlConfigurator.ConfigureAndWatch(new FileInfo("test.log4net.config"));
var t = new Test();
var sw = new Stopwatch();
sw.Start();
t.RunTest();
sw.Stop();
Console.WriteLine("Elapsed Minutes: {0}", sw.Elapsed.TotalMinutes);
Console.ReadLine();
}
}
public class Test
{
private readonly ILog _log = LogManager.GetLogger(typeof(Test));
public void RunTest()
{
for (int i = 0; i < 22000; i++)
{
_log.DebugFormat("test logging something: {0}", i);
}
}
}
}
由于某些原因,当您从test.log4net.config
删除此行时,Windows 10中的性能运行速度甚至快于Windows 7:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />