我是 C# 的新手,所以请多多包涵。我正在为我的项目(桌面小型企业应用程序)寻找日志记录解决方案。我知道这个问题已被问过无数次,但我还有一些额外的要求和问题。
是否有用于 .NET 的日志记录工具(以下所有):
-可靠(记录发送到记录器的所有内容,即使是崩溃前的最后一个异常,log4net 也不能保证这一点)
-fast (不阻塞调用者 -> 异步)
-线程安全(可以同时从多个线程调用并写入一个文件)
-加密日志文件(或允许完全自定义日志记录——只写它得到的,没有额外信息)
-免费
好吧,这就是我的要求 list 。你知道任何合适的通行费吗?我读过 log4net,但它看起来很旧(使用 .NET 2.0 并且主要是重新发明轮子),nlog 听起来很有前途,因为它是异步的,但我再次认为它不能加密。我也不知道它们是否都是完全线程安全的。
我应该只写我自己的小记录器吗?我考虑制作一个日志记录线程,一个日志列表(或队列),并使用锁定附加到适当的日志列表,日志记录线程将转换(可能转换为字符串,或某些部分转换为字符串)日志对象,加密它们并保存它们尽快归档。
你觉得我应该怎么做? 感谢您的想法和回答。
最佳答案
你可以使用 Microsoft Enterprise Library 5.0 logging .您可以使用 MSMQ 目标使其完全异步。使用加密部分,您有几个选择。
创建您自己的监听器,它将加密发送的消息,或者您可以在发送前对其进行加密。创建自己的监听器的几个不错的方面
- 发件人不必“知道”如何加密。这意味着如果您的加密政策发生变化,您只需将其编码到一个对象中即可。
- 相对容易地根据环境配置不同的行为。
使用 ent lib 的主要缺点是配置通常可以是 PIA,如果你对它感到复杂的话。
关于c# - .NET (4.0 - C#) 的可靠加密日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5964044/