2012-09-10 72 views
0

我想在一个庞大的分布式系统中配置log4j。有很多JVM和流程,并且(因为我只是一名学生),我对这种情况很陌生。我使用JMS Appender,所以我需要两个文件:log4j.propertiesjndi.propertiesLOG4j - 配置方法

我已经尝试了一些方法:

  1. 把这些文件放到src
  2. 或成src/java
  3. 添加JVM参数-Dlog4j.configuration=C:\...\log4j.properties

我不想设置在代码中使用PropertyConfigurator.configure("path"),因为我想不改变源代码。

有没有其他方法可以配置log4j?或者我错过了什么?我还得到一个消息

No appenders could be found for logger (some.package.SomeClass). 
Please initialize the log4j system properly. 
+0

可能这会帮助你[使用XML和属性文件配置Log4j。](http://www.javabeat.net/2008/07/baisc-steps-to-configure-log4j-using-xml-and-properties-file /) –

回答

0

基本上你有以下的方法来配置Log4j:

  1. 通过代码
  2. 属性文件(如你正在尝试使用)
  3. XML文件

你问我有关JMS appender的具体配置,而不是关于'一般的方式如何配置log4j”

这里是如何在你的属性文件和ActiveMQ 配置它对于其他JMS实现的关键很可能是相同的,但值是不同的实例

Example - using JMS appender with ActiveMQ

+0

我成功地使用了本教程和JMS Appender,但在一个小程序中。现在我想在一个庞大的系统中配置它,所以我的问题是关于如何在分布式系统中配置log4j的一般方法。 – alicjasalamon

+0

我看到,基本上每个JVM都存在log4j配置。所以你必须确保你的log4j配置可以与你系统中的所有JVM进程一起工作。如果使用应用程序服务器,事情可能会变得更加复杂,因此我将开始映射所有流程,并了解哪些服务器使用Log4j以及它们配置的代码在哪里。如果没有这种理解,恐怕你将无法正确配置它。 –

+0

我明白了,谢谢:) – alicjasalamon