鍍金池/ 問(wèn)答/Java  Linux/ Linux上springmvc項(xiàng)目log4j文件不輸出異常

Linux上springmvc項(xiàng)目log4j文件不輸出異常

本地測(cè)試時(shí)能夠打印error日志,但是在linux上error日志只會(huì)自動(dòng)創(chuàng)建但是沒(méi)有內(nèi)容,debug日志也只有tomcat開啟的信息,當(dāng)項(xiàng)目運(yùn)行時(shí)內(nèi)容也不會(huì)增加。

log4j配置代碼
<?xml version="1.0" encoding="UTF-8"?>    
<configuration status="ERROR">  
<!--     先定義所有的appender -->  
    <appenders>  
<!--         這個(gè)輸出控制臺(tái)的配置 -->  
        <Console name="Console" target="SYSTEM_OUT">  
<!--             控制臺(tái)只輸出level及以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch) -->  
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>  
<!--             這個(gè)都知道是輸出日志的格式 -->  
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  
        </Console>  

<!--         文件會(huì)打印出所有信息,這個(gè)log每次運(yùn)行程序會(huì)自動(dòng)清空,由append屬性決定,這個(gè)也挺有用的,適合臨時(shí)測(cè)試用 -->  
<!--         append為TRUE表示消息增加到指定文件中,false表示消息覆蓋指定的文件內(nèi)容,默認(rèn)值是true -->  
        <File name="log" fileName="/root/log/test.log" append="false">  
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>  
        </File>  

<!--          添加過(guò)濾器ThresholdFilter,可以有選擇的輸出某個(gè)級(jí)別以上的類別  onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否則直接拒絕  -->  
        <File name="ERROR" fileName="/root/log/log.log">  
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>  
            <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
        </File>  

<!--         這個(gè)會(huì)打印出所有的信息,每次大小超過(guò)size,則這size大小的日志會(huì)自動(dòng)存入按年份-月份建立的文件夾下面并進(jìn)行壓縮,作為存檔 -->  
        <RollingFile name="RollingFile" fileName="/root/log/web.log"  
                     filePattern="logs/$${date:yyyy-MM}/web-%d{MM-dd-yyyy}-%i.log.gz">  
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>  
            <SizeBasedTriggeringPolicy size="2MB"/>  
        </RollingFile>  
    </appenders>  

<!--     然后定義logger,只有定義了logger并引入的appender,appender才會(huì)生效 -->  
    <loggers>  
<!--         建立一個(gè)默認(rèn)的root的logger -->  
        <root level="trace">  
            <appender-ref ref="RollingFile"/>  
            <appender-ref ref="Console"/>  
            <appender-ref ref="ERROR" />  
            <appender-ref ref="log"/>  
        </root>  

    </loggers>  
</configuration>  
//
web.xml配置情況
   <listener>
         <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
    </listener>
     <filter>
         <filter-name>log4jServletFilter</filter-name>
         <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>log4jServletFilter</filter-name>
         <url-pattern>/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
         <dispatcher>FORWARD</dispatcher>
         <dispatcher>INCLUDE</dispatcher>
         <dispatcher>ERROR</dispatcher>
     </filter-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

clipboard.png

回答
編輯回答
影魅

你試試把

<configuration status="ERROR">
改成
<configuration status="DEBUG">
將會(huì)有更多有關(guān)log4j配置的信息輸出到命令行

2017年10月14日 10:11