如何加密log4net日志文件

时间:2009-08-11 14:47:02

标签: c# log4net

有没有办法加密或保护log4net输出?

4 个答案:

答案 0 :(得分:7)

我假设您要加密日志的输出。在这种情况下,您需要编写自己的Appender来处理加密。我建议找出你打算在没有加密的情况下使用什么输出机制(即FileAppender,EventLogAppender等),然后扩展该Appender并覆盖实际写出输出的功能。

可以找到关于appender的参考文档here

例如,使用EncryptedFileAppender扩展FileAppender并覆盖/实现您需要的成员,以便挂钩写入文件。

或者,您可以从IAppender扩展并从头开始创建一个appender。这将为您提供更多控制权,但如果您尝试做的只是对您的有效负载进行加密,则可能需要更多工作。

答案 1 :(得分:3)

如果您试图阻止用户通过网络阅读,您可以将编写日志记录的文件名更改为您不允许由您的网站提供的扩展程序。这样,用户就无法猜测您的日志文件并通过网络访问它。

如果您试图阻止登录到服务器本身的用户查看文件内容,您可以使用权限控制来锁定文件,以便只有特定管理员组中的用户才能查看内容。

或者,您可以登录数据库,以便根本不需要保护文件。

答案 2 :(得分:3)

对加密没有开箱即用的支持。正如其他人在此声明的那样,你必须自己实现。

那就是说,我建议继承ForwardingAppender进行加密。这基本上可以让你把你的appender“放在”你选择用于实际写入磁盘的标准appender之前。

答案 3 :(得分:2)

我意识到这个答案是在原始发布日期之后的几年,但面对同样的问题后,我决定创建一个开源软件包来完成这项工作:Log4Net Message Encryptor

源代码可在GitHub

上找到

可以从NuGet

下载该软件包