Java LOG4j-配置它的方法

Java LOG4j-配置它的方法,java,log4j,Java,Log4j,我想在一个大型分布式系统中配置log4j。有很多JVM和进程(因为我只是一名学生),我对这种情况还不熟悉。我使用jmsappender,所以我需要两个文件:log4j.properties,jndi.properties 我试过一些方法: 将这些文件放入src文件夹 或进入src/java 添加jvm参数-Dlog4j.configuration=C:\…\log4j.properties 我不想使用PropertyConfigurator.configure(“path”)在代码中设置它,因为

我想在一个大型分布式系统中配置
log4j
。有很多JVM和进程(因为我只是一名学生),我对这种情况还不熟悉。我使用
jmsappender
,所以我需要两个文件:
log4j.properties
jndi.properties

我试过一些方法:

  • 将这些文件放入
    src
    文件夹
  • 或进入
    src/java
  • 添加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.
    

    基本上,您可以通过以下方式配置Log4J:

  • 通过你的代码
  • 属性文件(当您尝试使用时)
  • Xml文件
  • 您向我提出的问题与JMS appender的特定配置有关,而不是关于“如何配置log4j的一般方法”

    下面是一个如何使用ActiveMQ配置它的示例 对于属性文件中的其他JMS实现,键可能相同,但值不同


    这可能会对您有所帮助。我成功地使用了本教程和JMS Appender,但只是在一个小程序中。现在我想在一个大型系统中配置它,所以我的问题是关于“如何在分布式系统中配置log4j的一般方法”。我知道,基本上每个JVM都有log4j配置。因此,您必须确保您的log4j配置能够与系统中的所有JVM进程一起工作。如果您使用应用程序服务器,事情可能会变得更加复杂,因此我将首先映射您的所有流程,了解其中哪些流程使用Log4j,以及它们在代码中的何处配置。如果不了解这一点,恐怕您将无法正确配置。