【问题标题】:Log4j Version 1.x: How to create different log files for different users?Log4j Version 1.x:如何为不同的用户创建不同的日志文件?
【发布时间】:2017-04-10 02:33:18
【问题描述】:

使用 log4j 版本 1.x 为不同用户创建不同日志文件的好方法是什么?

【问题讨论】:

  • 你的意思是不同的用户?通过 http 会话? LDAP会话? sso?
  • 我管理大约 10 个 TCP 连接,每个连接使用 5 个线程(总共 50 个线程)。我想为每个连接创建一个单独的日志文件。

标签: java log4j


【解决方案1】:

你可以这样做:

String user = ... // Should be a valid file name, so eventually             
                  // handle special characters

FileAppender fa = new FileAppender();
fa.setName("FileLogger");
fa.setFile(user + ".log");
fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
fa.setThreshold(Level.DEBUG);
fa.setAppend(true);
fa.activateOptions();

Logger userLogger = LoggerFactory.getLogger("LoggerName");
userLogger.addAppender(fa);

【讨论】:

  • 假设我有 10 个 TCP 连接,每个连接有 5 个线程,即总共 50 个线程,并且可能在这 50 个线程中执行 20 个不同的类。我真的看不出你建议的答案有什么帮助。
  • 您询问了如何为每个用户在不同文件上写入日志。此代码为每个用户写入不同文件的日志。不知道这是否可以帮助您,但这是您所问的,或者至少是我从 为不同的用户创建不同的日志文件 中了解到的
  • 我想我的问题有点不准确。对此我很抱歉。我的意思如下:我有很多类(每个类有一个记录器)、许多线程和许多执行代码的用户(类似于 Web 服务器),我需要确保由一个用户执行的所有代码被记录到同一个文件中。我看到了 log4j version 2.x 的另一个相关问题,但我不确定如何使用 log4j version 1.x 来实现这一点:stackoverflow.com/questions/25114526/…
猜你喜欢
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
相关资源
最近更新 更多