【发布时间】:2023-03-21 21:20:01
【问题描述】:
我在一个客户端服务器应用程序中工作,其中多个客户端和服务器正在为性能非常关键的金融交易进行基于套接字的通信。目前我正在使用 system.IO 命名空间的 streamwriter 将日志写入文件。对于单个事务,我需要调用 streamwriter 方法 50 次以记录不同的值,对于超过 50,000 个事务,此记录所花费的时间变得非常重要。
如何减少应用程序进行日志记录的时间?我是否需要选择其他方法或任何其他类而不是streamwriter?用更短的时间进行日志记录的最佳方法是什么。
【问题讨论】:
-
我相信大多数现代日志框架都在使用某种缓冲区。您是否尝试过使用其中一个(log4net 是我想到的第一个)?
-
嗨史蒂夫。到目前为止,我还没有尝试过 log4net,也不太了解。您是否觉得在我当前的应用程序中使用它对我有好处
-
...或 nLog(用一些非常高的输出日志很好地为我服务)
-
@AshishKhandelwal 绝对尝试现有的记录器之一。它们是由几个人多年来开发的,旨在提供具有多种选择的高性能。它们在保持输出顺序的同时利用缓冲区、线程等。我建议您不要在不先尝试其中一个的情况下自行推出,因为可能会有陷阱。我没有使用过 NLog,但使用 Log4Net 已经 年 没有任何抱怨。
-
以下是在决定您的日志记录策略时需要考虑的一些一般事项。 sometechfacts.blogspot.com/2018/04/…
标签: c# .net logging streamwriter