【问题标题】:Is there a way to create a separate log file for each user ? (spring boot)有没有办法为每个用户创建一个单独的日志文件? (弹簧靴)
【发布时间】:2020-05-30 08:49:09
【问题描述】:

我正在开发一个 Spring Boot 应用程序,我想为该应用程序的每个用户创建一个单独的日志文件,这可能吗?

例如:user1.log, user2.log, user3.log, ....

谢谢。

【问题讨论】:

  • 请更准确地说明您的问题并发布您正在构建的解决方案的代码。我们无法为您完成所有工作:-)

标签: spring-boot logging log4j2 logback spring-logback


【解决方案1】:

这是可能的,但它会创建与用户一样多的日志文件。想象一下,如果您的用户群增加到 20K。除非你有非常强烈的需求,否则不要去做。

改为使用应用程序级别和用户级别的日志记录。要实现这一点,请参阅此处 - https://stackoverflow.com/a/9652239

【讨论】:

    【解决方案2】:

    虽然我同意 Kann 的回答,即最好的方法是事后过滤,但在使用 Log4j 2 时,您的问题的答案是在使用 Logback 时使用 RoutingAppenderSiftingAppender。它们的工作方式相似,因为它们将为每个可能导致文件句柄问题的唯一项目创建新的附加程序。 Log4j2 的 RoutingAppender 提供了 PurgePolicy 来处理,而 Logback 提供了 timeToLive 属性。 Logback 使用 Discriminator 类来选择如何确定如何将日志事件与 Appender 匹配,而 Log4j 2 使用应该包含 Lookup 的模式(Log4j 2 的变量替换机制)或脚本来执行匹配。

    如果您使用 java.util.logging,则必须编写自己的机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2018-04-03
      • 2020-04-08
      • 1970-01-01
      • 2019-03-21
      相关资源
      最近更新 更多