问题
I'm trying to run this example, but I have some problems with configuration.
I copied log4j-jms.properties
, jndi.properties
, Log4jJMSAppenderExample.java
ProjectJMS
|
\_ src
| \_ Log4jJMSAppenderExample.java
| \_ jndi.propeties
\_ log4j-jms.properties
and run activemq
in my console.
When I ran my example I got
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.`PropertyConfigurator.configure("log4j-jms.properties");`
so I added
PropertyConfigurator.configure("log4j-jms.properties");
Now I can see logs in Eclipse console, but still with this warning
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.
2012-08-13 10:21:44,741 INFO Log4jJMSAppenderExample - Test log
Received log [INFO]: Test log
and in console with activemq
I got
WARN | Transport Connection to: tcp://127.0.0.1:2005 failed: java.net.SocketException: Connection reset
Why am I getting these warnings?
Are my imports wrong?
import javax.jms.Connection; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.Session; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQObjectMessage; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.spi.LoggingEvent;
Are my files in wrong place?
How to set configuration file in Eclipse? Without using
PropertyConfigurator.configure("log4j-jms.properties");
? There is no line like this in example I follow.
回答1:
Your log4j.properties
should reside inside the src
folder. That way, Log4J will configure itself automatically, without you needing to write code.
回答2:
There is nothing about imports;
It's not about the file place, as you see this message "log4j:WARN No appenders could be found for logger...", so please check the content of your log4j configuration file. Here's a demo:
log4j.rootLogger=INFO, myConsoleAppender log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.myConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
The default log4j configuration file is "log4j.properties", and as someone had said it should be place in the
src
folder.
回答3:
According to your project structure, there is no log4j-jms.properties.There is log4j.properties. So change your log4j properties file name.
来源:https://stackoverflow.com/questions/11930606/how-to-set-log4j-properties-in-eclipse