servlet2.5+Spring5 springMVC5 +Log4J2配置
阿新 • • 發佈:2019-01-03
搞了幾乎一天。因為專案用到了spring5,配置Log4J的時候發現spring5少了Log4jConfigListener這個監聽器,導致在web.xml裡面不能啟動log4j,官方建議用log4j2。用的是servlet2.5,所以就需要在web.xml中配置監聽器。如果是servlet3的話,直接匯入log4J2的jar包就行了,不需要再在web.xml中配置了,因為會自動啟動的。
log4J2需要的jar包有3個:log4j-core 、 log4j-api、log4j-web。具體的去http://logging.apache.org/log4j/2.0/download.html這個網址下載吧。
再提醒一次,如果專案是servlet3以上,只需要把這3個jar包匯入專案,再弄個配置檔案放到專案程式碼根目錄就行了。如果你的專案是servlet2.5還需要配置web.xml,配置如下:
<!-- log4j2配置 --> <context-param> <param-name>log4jConfiguration</param-name> <param-value>classpath:resource/log4j2.xml</param-value> </context-param> <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> <dispatcher>ASYNC</dispatcher> </filter-mapping>
在controller中使用如下:
Logger logger = LogManager.getLogger(UserController.class.getName());
匯入的包是下面這兩個路徑。
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
具體的文件,在官方文件有詳細介紹。多閱讀官方文件。http://logging.apache.org/log4j/2.0/manual/webapp.html
配置檔案log4j2.xml:(下面這個是在官網上找出來的,可以使用)
<Configuration status="WARN" name="ServletTest"> <Appenders> <Servlet name="Servlet"> <PatternLayout pattern="%m%n%ex{none}"/> </Servlet> </Appenders> <Loggers> <Root level="debug"> <AppenderRef ref="Servlet"/> </Root> </Loggers> </Configuration>