为什么Log4Net在我的Windows服务中运行得如此之慢?

时间:2008-11-10 22:10:42

标签: .net-2.0 service log4net c#-2.0 performance

我有一个使用log4net的Windows服务。我们注意到有问题的服务运行缓慢,因此我们将调试器附加到它并逐步完成。似乎每次尝试通过log4net向日志写入条目时,在下一行代码执行之前需要10到30秒。显然这加起来......

该服务是2.0 .net 我们正在使用log4Net 1.2.0.30714。 我们在运行vista的机器和运行win sever 2003的机器上测试了这个,并且看到了相同或类似的结果。

6 个答案:

答案 0 :(得分:1)

Jeff在Podcast 20中提到了Log4Net的性能问题。您可能会遇到类似的问题。

答案 1 :(得分:1)

原来,有人在配置文件中添加了一个SMPTAppender,它覆盖了我们应用中的那个。因此,错误的SMPT服务器地址无法访问。 log4net试图将每个请求记录错误一分钟,然后放弃并继续下一行代码。修正smtp地址解决了问题。

答案 2 :(得分:0)

我有ad4et appender的log4net,并没有看到我的Windows服务的任何递减性能。你正在使用什么appender?

答案 3 :(得分:0)

检查配置文件中的Log4Net设置。可以将Log4Net配置为记录到远程计算机,如果连接速度很慢,则记录速度也会很慢。

答案 4 :(得分:0)

嗯,我没有远程...这是写在它运行的机器上的日志文件中。这是我的appender设置:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <file value="D:\\ROPLogFiles\\FileProcessor.txt" />
      <appendToFile value="true" />
      <datePattern value="yyyyMMdd" />
      <rollingStyle value="Date" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
      <threshold value="INFO" />
    </appender>

答案 5 :(得分:0)

默认的最大文件大小为10mb。如果您的文件大小与此大小相当,并且您的文件系统已满且可能严重碎片化,则可能存在问题。你的日志文件有多大?我遇到了类似千兆字节大小的日志文件的问题。