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代码:

[plain] view plain copy 在CODE上查看代码片 派生到我的代码片
  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配置结束。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值