C# 频繁写入磁盘日志的最佳做法

C# 频繁写入磁盘日志的最佳做法,c#,logging,service,disk,C#,Logging,Service,Disk,我正在用C#开发一个windows服务,它可能每秒写入日志几次。我目前正在为每个操作使用System.IO.File.AppendAllText(time+message),我担心过多的写操作可能会很快磨损磁盘 这可能是个问题吗?我应该每隔几秒钟使用一次流并冲洗一次吗?windows磁盘缓冲区是否对此提供保护 你为什么要重新发明轮子? 最好用一些现成的 “我应该每隔几秒钟使用一次流并冲洗一次吗?” 如果你的应用程序在没有刷新流的情况下崩溃怎么办?日志消失了,你不知道会发生什么 你为什么要重新发明

我正在用C#开发一个windows服务,它可能每秒写入日志几次。我目前正在为每个操作使用
System.IO.File.AppendAllText(time+message)
,我担心过多的写操作可能会很快磨损磁盘


这可能是个问题吗?我应该每隔几秒钟使用一次流并冲洗一次吗?windows磁盘缓冲区是否对此提供保护

你为什么要重新发明轮子? 最好用一些现成的

“我应该每隔几秒钟使用一次流并冲洗一次吗?”


如果你的应用程序在没有刷新流的情况下崩溃怎么办?日志消失了,你不知道会发生什么

你为什么要重新发明轮子? 最好用一些现成的

“我应该每隔几秒钟使用一次流并冲洗一次吗?”


如果你的应用程序在没有刷新流的情况下崩溃怎么办?日志消失了,你不知道会发生什么

更多需要考虑的事情:并发性?异常终止?呼叫延迟?最大日志大小?老实说……如果这不是一个简单的练习,你最好选择一个像NLOGT这样的日志框架。一般来说,web上有很多关于这方面的信息,特别是这个网站。在人们重复之前,请阅读并分享你的研究成果。谢谢Adriano,我已经手动解决了其中一些问题,甚至没有考虑其他问题。我表面上看了一下log4net,放弃了把它当作滥杀的想法,但似乎我需要它。我把搜索的重点放在磁盘损坏上,因为这是我关心的问题。我发现了一个与编程无关的问题。感谢您提出“如何确保所有数据…”的问题。需要考虑的问题还有:并发性?异常终止?呼叫延迟?最大日志大小?老实说……如果这不是一个简单的练习,你最好选择一个像NLOGT这样的日志框架。一般来说,web上有很多关于这方面的信息,特别是这个网站。在人们重复之前,请阅读并分享你的研究成果。谢谢Adriano,我已经手动解决了其中一些问题,甚至没有考虑其他问题。我表面上看了一下log4net,放弃了把它当作滥杀的想法,但似乎我需要它。我把搜索的重点放在磁盘损坏上,因为这是我关心的问题。我发现了一个与编程无关的问题。感谢您提出“如何确保所有数据……”问题。