2016-08-29 47 views
0

我正在开发一个C#中的Windows服务,它可能会每秒写入几次到日志。我目前正在为每个操作使用System.IO.File.AppendAllText(time + message),我担心很多写入操作可能会很快耗尽磁盘。做频繁的磁盘日志写入的最佳做法

这可能是一个问题吗?我应该每隔几秒钟使用一次数据流并刷新一次? Windows磁盘缓冲区是否防止这种情况发生?

+0

更多需要考虑的事项:并发性?异常终止?呼叫者延迟?最大日志大小?老实说...如果这不仅仅是一个练习,你最好选择一个日志框架,如NLog –

+0

在网络上有一般关于这个的信息,特别是这个网站。在人们去重复已有的内容之前,请阅读[问]并分享您的研究成果。 – CodeCaster

+0

感谢阿德里亚诺,我已经手动解决了这些问题,甚至没有考虑过其他问题。我表面上看过log4net,并放弃使用它作为矫枉过正的想法,但似乎我需要它。 代码测试员,我专注于对磁盘损伤的搜索,因为这是我的担忧,发现一个被抛弃的问题与编程无关,而且几乎没有其他问题。感谢您提出“如何确保所有数据......”的问题。 –

回答

2

为什么你想重新发明轮子? 更好地使用一些准备framework例如。 Log4NetNLogSeriLog

“我应该每隔几秒钟使用一个数据流并刷新一次吗?”

如果你的应用崩溃而没有刷新流呢?日志消失,你不知道发生了什么。