对运行不同进程的同一应用程序使用不同的log4j配置文件

时间:2014-02-16 11:04:15

标签: java spring log4j

我开发了一个简单的基于spring的应用程序,它有三个不同的类,包含main方法。

class P1 -> runs process P1
class P2 -> runs process P2
class P3 -> runs process P3

目前,这些进程使用单个日志配置文件,即log4.xml,默认情况下从类路径加载。

我想这样做

class P1 -> runs process P1 -> Uses log4j_p1.xml
class P2 -> runs process P2 -> Uses log4j_p2.xml
class P3 -> runs process P3 -> Uses log4j_p3.xml

如何在Spring中实现这一目标?

注意:这是普通的Spring应用程序。我是春天的新手。如果使用Dependency Injection有特定于Spring的方式,请告诉我。 如果没有,我们怎样才能以JAVA + log4j方式实现它。

1 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法可能是使用log4j的log4j.configuration系统属性。您可以将此系统属性传递给每个进程,并引用相关的log4j.xml文件。

例如,假设log4j_p1.xml在类路径上,那么当您运行P1时,将以下系统属性添加到启动Java进程的命令中:

-Dlog4j.configuration=log4j_p1.xml

然后对P2P3进行相同的操作。