为每个已执行的类记录Log4j

时间:2014-06-09 03:28:41

标签: java logging log4j

我正在使用Java,我有一个将执行某些类的xml文件。

这是xml的示例样式

    <test name="Test1">
    <classes>
        <class name="com.foo.bar.test1"></class>
    </classes>
</test> 

<test name="Test2">
    <classes>
        <class name="com.foo.bar.test2"></class>
    </classes>
</test> 

<test name="Test3">
    <classes>
        <class name="com.foo.bar.test3"></class>
    </classes>
</test> 

我能够使用Log4j进行日志记录,但我只将其设置在log4j.properties上,因此所有日志都会被完全附加。

我想为每个执行的类创建日志文件。

关于如何做到这一点的任何想法?

谢谢

1 个答案:

答案 0 :(得分:1)

由于Log4J仅在类加载器的生命周期内初始化一次,因此实现此效果的唯一方法是在运行这些测试的程序中动态更改Log4J配置 (程序I& #39; m指的是您为解析XML文件并处理每个类而编写的程序。)

有关动态配置Log4J的信息,请参阅Log4J的Javadoc。

另外,请记住,由于Log4J的范围是在类加载器中,因此您无法运行那些&#34; test&#34;同时使用类,除非您开始动态创建和初始化类加载器。