获取 logback.xml 以记录不可变日志

Posted

技术标签:

【中文标题】获取 logback.xml 以记录不可变日志【英文标题】:Getting logback.xml to log immutable logs 【发布时间】:2017-09-06 17:08:26 【问题描述】:

我正在使用我的 logback.xml 登录到控制台和外部文件。

我想将此用作审计功能,当用户执行某些操作(例如登录/注销等)时进行记录。

我想知道是否有办法使日志文件不可变,因为目前存储的日志文件很容易使用文本编辑器进行更改。

还有一种方法可以使它们受密码保护或存储在受密码保护的文件中。

谢谢。

【问题讨论】:

你总是可以加密日志,这样它们就不能被轻易打开,但有人仍然可以很容易地删除它们,注意我说的很容易,因为如果有人可以对你的代码进行逆向工程,他们可以弄清楚它在做什么来解密它并模拟该过程 【参考方案1】:

这是一个相当宽泛的问题,有点过于宽泛了,但我会试一试。

如果您正在登录到常规文本文件,那么它们可以像在您的平台上的任何其他类型的文件一样受到保护(通过限制用户权限、使用文件系统加密、使用文件系统审计、自动复制到写入- CD等系统)

如果您想做一些超出您的文件系统平台可以做的事情,那么也许您想登录到某种具有您正在寻找的审核和权限功能的数据库? Logback 内置了database Appender,如果您出于某种原因需要登录到更奇特的地方,您甚至可以使用write your own Appender。

但实际上,没有任何特定于 Logback 的功能可以帮助您保护数据。它是一个框架,可让您轻松向其发送日志记录数据,并轻松配置该数据的放置位置,但是一旦您拥有该数据,您就可以像所有其他数据一样弄清楚您需要如何处理它。

【讨论】:

以上是关于获取 logback.xml 以记录不可变日志的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在使用logback.xml和MDC的spring-boot日志中获取用户请求,响应和request-id以及process-id?

使用 Logback 的日志中不可读的线程名称

小技巧:如何自定义logback日志文件的名称

关于logback如何通过当前配置文件获取路径

logback日志配置获取服务器名称/ip/pid/端口

logback配置文件详解