2013-01-21 41 views
4

我花了一整天的時間試圖解決我在webapp中使用log4j時遇到的日誌記錄問題。無論我做什麼,我無法擺脫以下內容:在Spring框架下:WARN:WARN沒有找到記錄器的appender(org.springframework.web.context.ContextLoader)

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

只是要清楚,我看了所有的文章在這裏堆棧溢出解決這一問題。我已閱讀log4j手冊。我已經經歷了十幾個不同的教程。我試過了屬性方法和XML方法(分別是log4j.properties和log4j.xml)。另外,我已確認正在讀取log4j.xml文件。除了服務器在啓動時告訴我的事實,我可以通過.xml文件影響反饋的級別。所以,是的,log4j.xml文件位於CLASSPATH中。

我知道我錯過了一些簡單而基本的東西。下面是相關的文件:

的log4j.xml(/ WEB-INF):

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

<!-- Appenders --> 
<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p: %c - %m%n" /> 
    </layout> 
</appender> 

<!-- Application Loggers --> 
<logger name="com.tiersoftinc.testlog"> 
    <level value="info" />  
</logger> 

<!-- 3rdparty Loggers --> 
<logger name="org.springframework.core"> 
    <level value="info" />  
</logger> 

<logger name="org.springframework.beans"> 
    <level value="info" />  
</logger> 

<logger name="org.springframework.context"> 
    <level value="info" />  
</logger> 

<logger name="org.springframework.web"> 
    <level value="info" />  
</logger> 

<!-- Root Logger --> 
<root> 
    <priority value="warn" /> 
    <appender-ref ref="console" /> 
</root> 

</log4j:configuration> 

和web.xml(/ WEB-INF):

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

<!-- The definition of the Root Spring Container shared by all Servlets and Filters, and the applicationContext.xml file --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/spring/root-context.xml 
     /WEB-INF/spring/app-context.xml   
    </param-value>  
</context-param>  

<!-- Logging listener --> 
<listener> 
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 
<context-param> 
    <param-name>log4jConfigLocation</param-name> 
    <param-value>/WEB-INF/log4j.xml</param-value> 
</context-param> 

<!-- Creates the Spring Container shared by all Servlets and Filters --> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
</listener> 

<!-- Processes application requests --> 
<servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>   
    </init-param>  
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

</web-app> 

和APP上下文。 XML(/ WEB-INF /彈簧):

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:p="http://www.springframework.org/schema/p" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> 

<!-- Activates various annotations to be detected in bean classes --> 
<context:annotation-config /> 

<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans. 
For example @Controller and @Service. Make sure to set the correct base-package --> 
<context:component-scan base-package="com.tiersoftinc.gridlab3" /> 

<!-- Configures the annotation-driven Spring MVC Controller programming model. 
Note that, with Spring 3.0, this tag works in Servlet MVC only! --> 
<mvc:annotation-driven /> 

<mvc:resources mapping="/resources/**" location="/resources/" />   

<!-- Imports datasource configuration --> 
<import resource="app-context-mongo.xml"/> 

</beans> 

和APP-CONTEXT-MONGO.XML(/ WEB-INF /彈簧):

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:p="http://www.springframework.org/schema/p" 
xmlns:c="http://www.springframework.org/schema/c" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mongo="http://www.springframework.org/schema/data/mongo" 
xmlns:util="http://www.springframework.org/schema/util" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.1.xsd      
        http://www.springframework.org/schema/context      
        http://www.springframework.org/schema/context/spring-context-3.1.xsd       
        http://www.springframework.org/schema/data/mongo       
        http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd      
        http://www.springframework.org/schema/util      
        http://www.springframework.org/schema/util/spring-util-3.1.xsd">  

<!-- Activate Spring Data MongoDB repository support --> 
<mongo:repositories base-package="com.tiersoftinc.gridlab3.repository" /> 

<bean id="propertyPlaceholderConfigurer" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>/WEB-INF/spring/database.properties</value> 
     </list> 
    </property> 
</bean> 

<!-- MongoDB host --> 
<mongo:mongo host="${mongo.host.name}" port="${mongo.host.port}"/> 

<!-- Template for performing MongoDB operations --> 
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate" 

c:mongo-ref="mongo" c:databaseName="${mongo.db.name}"/> 

<!-- Service for initializing MongoDB with sample data using MongoTemplate --> 
<bean id="initGridLab3Service" class="com.tiersoftinc.gridlab3.services.InitGridLab3Service" init-method="init"/> 

</beans> 

,最後ROOT-context.xml中(/ WEB-INF /春):

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">  

<!-- Root Context: defines shared resources visible to all other web components -->  
<context:annotation-config /> 

</beans> 

我缺少什麼?

謝謝。

回答

5

你試過嗎?

<logger name="org.springframework.web"> 
    <level value="info" /> 
    <appender-ref ref="console" />  
</logger> 
+0

謝謝回覆: –

相關問題