views:

8973

answers:

4

I already put the log4jConfigLocation in web.xml, but still, i get warning

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). log4j:WARN Please initialize the log4j system properly. what did i missed out?

    <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>

       /WEB-INF/applicationContext.xml

     </param-value>
    </context-param>

 <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/classes/log4j.properties</param-value>
  </context-param>



  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>





    <servlet>
     <servlet-name>suara2</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    </servlet>
    <servlet-mapping>
     <servlet-name>suara2</servlet-name>
     <url-pattern>/*</url-pattern>
    </servlet-mapping>
A: 

You'll see this warning if log4j can't find a file "log4j.properties" or "log4j.xml" anywhere.

Aaron Digulla
i confirm the location is correct . coz when i rename log4j.properties to other name, it give error
cometta
+4  A: 

If that's the entire log4j.properties file it looks like you're never actually creating a logger. You need a line like:

log4j.rootLogger=debug,A1
CodeGoat
A: 

You amy get this error when your log4j.properties are not present in classpath.

Means you have to move the log4j.properties in src folder and set the output to the bin folder so that at run time log4j.properties will read from bin folder and your error will be resolved easily.

prabhat
+1  A: 

I had log4j.properties in the correct place in the classpath and still got this warning with anything that used it directly. Code using log4j through commons-logging seemed to be fine for some reason.

If you have:

log4j.rootLogger=WARN

Change it to:

log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n

According to http://logging.apache.org/log4j/1.2/manual.html:

The root logger is anonymous but can be accessed with the Logger.getRootLogger() method. There is no default appender attached to root.

Adding that 'console' appender to the rootLogger gets this complaint to disappear.

Alain O'Dea