动态创建和销毁日志记录追加程序

Edw*_*ges 5 java log4j

我有一个传统的PSVM应用程序,我想将其日志记录输出重定向到每次执行的唯一文件.所以,如果我在10:00调用它,那么让它将它的输出重定向到{thread-id} -10:00.log; 另一个执行线程可以在10:01开始执行,其输出将转到{thread-id} -10:01.log.我明白这不优雅.

我的问题是:

  • 这可能吗?
  • 有人知道如何接近吗?
  • 是否有可能在不再需要时释放/销毁一个appender?

谢谢!

Bri*_*new 4

我将从FileAppender开始,并从中派生来创建您自己的。只需修改您的版本即可获取当前线程 ID,并在创建之前将合适的线程 ID/时间戳附加到文件中。您将维护(比方说)以线程 id 为键的(缓冲的) FileWriters映射。

编写追加器非常简单 -这里有一个关于如何做到这一点的Javaworld 指南。

在上面的内容中,您的程序是否有可能在一分钟内启动两次?您想附加一个进程 ID 或类似的内容以保持唯一性吗?