0

我使用 Logback 从集成框架中记录。所有集成都在同一个 Java VM 中运行,并使用一个 logback.xml 进行配置。它们都在单独的包中,我已经对其进行了设置,因此它们都使用滚动文件附加程序(仅使用简单的 class="xyz" 等)登录到自己的文件中。这工作正常。

但是,所有集成都引用了另一个 jar 文件,它是一个共享库。我可以为这个共享库中的类设置一个附加程序,但是将日志转到另一个文件会使跟踪变得非常困难。例如,第一个日志将出现在 integration_one.txt 中,下一个出现在 shared_lib.txt 中,下一个出现在 integration_one.txt 中。

我需要配置 logback,以便共享库日志最终与调用它的集成在同一个文件中。

我能想到的唯一方法是将包 x 中开始的线程中的所有日志记录到文件 y 中,但我不知道可以完成此操作的配置。

有人有什么想法吗?

4

1 回答 1

0

不幸的是,Logback 不能那样工作。

jar 文件中的类无疑会初始化它们自己的附加程序,并且通常使用它们的完全限定类名来这样做。

控制向其附加日志的文件的配置部分使用该完全限定的类名将日志条目定向到适当的文件。

简而言之,一个类可以将其日志定向到一个或多个附加程序,但我不知道使用第三方代码的任何方式可以根据某些外部因素将相同的类日志记录到不同的附加程序。

如果您在 jar 文件中编写了类,那么您可能会根据上下文向它们传递一个记录器以供使用,但我猜您没有源代码或不想修改它。

于 2012-11-26T14:45:43.653 回答