Java 如何修复Tomcat中的log4j警告消息

Java 如何修复Tomcat中的log4j警告消息,java,tomcat,log4j,activemq,Java,Tomcat,Log4j,Activemq,我不熟悉JMS和Activemq package PackageName; import java.io.IOException; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.servlet.Se

我不熟悉
JMS
Activemq

  package PackageName;
  import java.io.IOException;
  import javax.jms.Connection;
  import javax.jms.ConnectionFactory;
  import javax.jms.Queue;
  import javax.jms.Session;
  import javax.jms.TextMessage;
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import org.apache.activemq.ActiveMQConnectionFactory;
 //@SuppressWarnings("serial")
 public class MessageProducer extends HttpServlet {
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
        throws ServletException, IOException {
    try {
        //created ConnectionFactory object for creating connection 
        ConnectionFactory factory = new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61617");
        //Establish the connection
        Connection connection = factory.createConnection();
        Session session = connection.createSession(false,
        Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue("MessageTesing123");
        //Added as a producer
        javax.jms.MessageProducer producer = session.createProducer(queue);
        // Create and send the message
        TextMessage msg = session.createTextMessage();
        msg.setText("TestMessage3");
        producer.send(msg);
    } catch (Exception e) {
        // TODO: handle exception
    }
}
}
如果我使用ApacheTomcat运行这个.java文件,它运行得很好,但是我收到了以下警告

log4j:WARN找不到记录器(org.apache.activemq.transport.wireformatcongregator)的附加程序。

log4j:WARN请正确初始化log4j系统。

log4j:警告请参见http://logging.apache.org/log4j/1.2/faq.html#noconfig 有关更多信息。

我怎样才能解决这个问题


谢谢。

这不是ActiveMq警告;这是一个log4j警告

  • 如果您在Tomcat中运行,请获取标准的
    log4j.properties
    log4j.xml
    文件

  • 为您的环境配置它

  • 将日志文件放在
    /webapps//WEB-INF/classes
    ,或放入 相同相对路径下的WAR文件:
    /WEB-INF/classes

  • 表示您没有与rootLogger相关的记录器。也就是说,WireFormatCongregator正在尝试记录某些内容,但找不到记录器。既不是控制台,也不是文件或其他任何东西

    例如,在我的项目中,我记录了包com.foo中的所有日志记录语句,因此我的属性如下所示:

    log4j.logger.com.foo=DEBUG, MYPROJECT
    ... 
    
    后来我

     log4j.appender.MYPROJECT=org.apache.log4j.RollingFileAppender
    

    和其他RollingFileAppender详细信息。log4j.properties应该在类路径中。典型的位置是web inf/类

    我把
    log4j.properties
    文件放在/lib文件夹下。它仍然不工作。我把
    log4j.properties
    文件放在
    WEB-INF/classes
    文件夹下。它工作得很好。如果您编辑您的答案,我将接受您的答案。当
    war
    文件导出时,我是否可以维护相同的
    log4j.properties
    文件。我问的原因可能是,我们将在我的应用程序服务器中使用更新版本的
    Activemq
    。@user2642355是的,如果
    log4j
    文件中的日志文件路径与文件系统一致,则这应该不会是一个问题,以便记录器可以适当地进行日志记录;答案已更新。
     log4j.appender.MYPROJECT=org.apache.log4j.RollingFileAppender