mybatis中log4j.properties 打印sql語句

轉載:http://blog.csdn.net/daxiang12092205/article/details/18102057

(1)將javax.servlet_1.0.0.0_2-5.jar拷貝到web-inf/lib下。

(2)在web-inf根目錄下新建文件log4j.properties,配置日誌輸出級別、日誌路徑等信息。log4j.properties代碼:

  1. # debug<info<warn<error  
  2. log4j.rootLogger=debug, LOGFILE  
  3. #log4j.debug=true  
  4.   
  5. # Set the enterprise logger category to FATAL and its only appender to CONSOLE.  
  6. #設置包日誌輸出級別  
  7. #log4j.logger.com.xy6=INFO, CONSOLE  
  8.   
  9. # CONSOLE is set to be a ConsoleAppender using a PatternLayout.  
  10. #輸出到控制檯  
  11. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
  12. log4j.appender.CONSOLE.Threshold=INFO  
  13. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
  14. log4j.appender.CONSOLE.layout.ConversionPattern=%d %p [%c] - <%m>%n  
  15.   
  16. #輸出到文件  
  17. log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender  
  18. log4j.appender.LOGFILE.File=${webappRoot}/log/AllLog.log  
  19. log4j.appender.LOGFILE.MaxFileSize=10000KB  
  20. log4j.appender.LOGFILE.MaxBackupIndex=1000  
  21. log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout  
  22. log4j.appender.LOGFILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n  
  23.   
  24. #mybatis顯示SQL語句日誌配置  
  25. log4j.logger.com.ibatis=DEBUG  
  26. log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG  
  27. log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG  
  28. log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG  
  29. log4j.logger.java.sql.Connection=DEBUG  
  30. log4j.logger.java.sql.Statement=DEBUG  
  31. log4j.logger.java.sql.PreparedStatement=DEBUG  

(3)在web根目錄下新建文件夾log,作爲日誌文件輸出的根目錄。

(4)在com.xy6下新建log4j初始化類Log4jInitServlet.java,初始化log4j配置文件中日誌路徑中的參數webappRoot,輸出應用的磁盤路徑。若log4j.properties中日誌輸出路徑爲固定值如E:\j2ee\workspace\SSM\web\log,則無需再寫該類進行初始化。Log4jInitServlet.java代碼:

  1. package com.xy6;  
  2.   
  3. import javax.servlet.ServletException;  
  4. import javax.servlet.http.HttpServlet;  
  5. import org.apache.log4j.PropertyConfigurator;  
  6.   
  7. public class Log4jInitServlet extends HttpServlet {  
  8.   
  9.     private static final long serialVersionUID = 1L;  
  10.   
  11.     public void init() throws ServletException {  
  12.         System.out.println("---path:"+getServletContext().getRealPath("/"));  
  13.         System.setProperty("webappRoot", getServletContext().getRealPath("/"));  
  14.         PropertyConfigurator.configure(getServletContext().getRealPath("/")  
  15.                 + getInitParameter("configfile"));  
  16.     }  
  17. }  

(5)修改web.xml,配置log4j配置文件路徑及初始化類。web.xml代碼:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  3.     <display-name>SSM</display-name>  
  4.   
  5.     <welcome-file-list>  
  6.         <welcome-file>/demo/demo.jsp</welcome-file>  
  7.     </welcome-file-list>  
  8.   
  9.     <filter>  
  10.         <filter-name>struts2</filter-name>  
  11.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  12.     </filter>  
  13.     <filter-mapping>  
  14.         <filter-name>struts2</filter-name>  
  15.         <url-pattern>/*</url-pattern>  
  16.     </filter-mapping>  
  17.   
  18.     <context-param>  
  19.         <param-name>contextConfigLocation</param-name>  
  20.         <param-value>/WEB-INF/spring.xml</param-value>  
  21.     </context-param>  
  22.   
  23.     <listener>  
  24.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  25.     </listener>  
  26.   
  27.     <servlet>  
  28.         <servlet-name>log4j config file</servlet-name>  
  29.         <servlet-class>com.xy6.Log4jInitServlet</servlet-class>  
  30.         <init-param>  
  31.             <param-name>configfile</param-name>  
  32.             <param-value>/WEB-INF/log4j.properties</param-value>  
  33.         </init-param>  
  34.   
  35.         <load-on-startup>1</load-on-startup>  
  36.     </servlet>  
  37.   
  38. </web-app>  

(6)修改DemoAction.java,測試日誌文件是否正確輸出。DemoAction.java代碼:

  1. package com.xy6;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.apache.log4j.Logger;  
  6. import org.springframework.beans.factory.annotation.Autowired;  
  7.   
  8. import com.opensymphony.xwork2.ActionSupport;  
  9.   
  10. public class DemoAction extends ActionSupport {  
  11.   
  12.     private static final long serialVersionUID = 1L;  
  13.     private final Logger logger = Logger.getLogger(DemoAction.class.getName());  
  14.   
  15.     @Autowired  
  16.     private DemoDao demoDao;  
  17.   
  18.     public String execute(){  
  19.         DemoHelper demoHelper = new DemoHelper();  
  20.         System.out.println("---curren year:"+demoHelper.getCurYear());  
  21.         DemoVO demoVO = new DemoVO();  
  22.         demoVO.setCode(1);  
  23.         List<DemoVO> listDemoVO = demoDao.selectByCode(demoVO);  
  24.         for(int i=0;i <listDemoVO.size(); i++){  
  25.             System.out.println("---i:"+listDemoVO.get(i).toString());  
  26.         }  
  27.         this.testLog4j();  
  28.         return "success";  
  29.     }  
  30.   
  31.     public void testLog4j(){  
  32.         logger.info("info");  
  33.         logger.warn("warn");  
  34.         logger.debug("debug");  
  35.         logger.error("error");  
  36.         logger.fatal("fatal");  
  37.     }  
  38. }  

(7)重啓域服務,控制檯輸出應用的磁盤路徑。如下圖:

(8)瀏覽器中訪問http://localhost:9001/web/demo.action,頁面顯示demo.jsp,log文件夾下生成AllLog.log。如下圖:

(9)至此,log4j配置結束。

發佈了49 篇原創文章 · 獲贊 3 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章