如何在Tomcat中修复log4j警告消息

时间:2013-08-08 15:11:19

标签: java tomcat log4j activemq

我是JMSActivemq的新手。使用Google和堆栈溢出帮助我使用以下代码将来自我的Java程序的消息发送到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
    }
}
}

如果我使用Apache Tomcat运行此.java文件,它工作正常,但我收到以下警告。

log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我该如何解决这个问题。

感谢。

2 个答案:

答案 0 :(得分:1)

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

  1. 如果您在Tomcat中运行,请获取标准log4j.propertieslog4j.xml档案。

  2. 根据您的环境进行配置。

  3. 将日志文件放在<TOMCAT>/webapps/<MyProject>/WEB-INF/classes,或者放入 相同路径下的WAR文件:/WEB-INF/classes

答案 1 :(得分:0)

No appenders could be found for logger ...

表示您没有与rootLogger相关的记录器。这意味着,WireFormatNegotiator正在尝试记录某些东西,但没有找到记录器。控制台,文件或其他任何东西。

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

log4j.logger.com.foo=DEBUG, MYPROJECT
... 

以后我有

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

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