2011-06-17 90 views
0

Project1正在使用来自project2和project3的类。两个项目|两个日志文件

项目2和项目3在其src文件夹单独log4j.properties文件和记录类(Pro2.java & Pro3.java与信息,调试方法)。

PROJECT1具有调用

Pro2.logInfo("This is a log for project2"); 
    Pro3.logInfo("This is a log for project3"); 

我想在两个不同的日志中记录这些日志文件我在他们的log4j.properties文件设置一个主要方法。

+0

可以定义用于每个记录器一个新的[附加器(http://www.vaannila.com/log4j/log4j-file-appender-example-1.html)。另外,我认为你只需要一个log4j.properties。 – fnst 2011-06-17 07:02:58

+0

我可以在两个项目中使用两个log4j.properties吗? – 2011-06-17 07:18:41

+0

是的,但是您需要IDE中的“两个”项目;不仅有两个类 – fnst 2011-06-17 07:23:19

回答

1

Log4j会自动查找并使用它在类路径中找到的配置文件。它会查找名为log4j.properties和log4j.properties和其他可能的文件。

或者,你可以编程使用加载配置;

String filename = "/path/to/config/Project1log4j.properties"; 
PropertyConfigurator.configure(filename); 
2

通常,只能有一个活动的log4j.properties文件(J2EE环境中有例外)。

你想要做的是在一个属性文件中配置两个项目的日志记录。您需要定义两个appender,并为每个项目指定使用其自己的appender的类别。

+0

是的一种方法是制作另一个appender,但是我可以在两个项目中使用两个log4j.properties吗? – 2011-06-17 07:19:16

+1

它在J2EE环境中工作,具有多个log4j实例,以便它们可以独立初始化。你必须有一些自定义类加载来隔离log4j实例。你有什么理由不能简单地合并属性文件? – developmentalinsanity 2011-06-17 07:37:40

+0

具有独立的lo4j.properties文件的一个原因是项目需求。如你所知,eclipse是一个插件库。我们可以添加/删除插件,这样每个插件都可以有独立的日志文件来读取它的日志。我觉得你现在更清楚了?请让这一点更清晰“你必须有一些自定义类加载来隔离log4j实例”。 – 2011-06-17 07:52:40